Programming can be defined as a process of designing (or writing, in simpler terms) an executable computer program for accomplishing a particular task, whatever that may be. If you are new to programming (let’s just say coding) and wish to learn how to code, you may be overwhelmed by the sheer amount of information on programming languages, code editors, frameworks, or even IDEs (Integrated Development Environments) and you feel –
- It is an insurmountable task
- You don’t know where to start
- There is an availability of too many courses on the internet, hence the paralyzing fear
- You are unaware of HOW to start
- It may turn out to be not one of your strong suits
However, considering everyone within the range of the opposite sides of the ‘programmer’ spectrum, from the mediocre to the top-brass at programming, they all started off the same way : by trial and error, making mistakes along the way, learning from them and improving by taking one step at a time (even if it involves taking one step further and two back : yes, this will happen quite a lot).
That being said, learning to code shouldn’t be feared and one must be an avid learner to move forward. Consider this article as a short and succinct guide to some tips for taking your baby steps towards Computer Programming.
Choosing a Programming Language
Pick a language on the basis of which field (or domain) of programming you are interested in. You could pick any language to learn the fundamentals (semantics or basics, for the want of a better term), but if you wish to go further than that (suppose if you are learning to code to work in the field later), then you will initially (for a certain time period) need to stick to one language, especially the one which is mainly used in the domain you have an eye on. For example –
- Mobile Development (Swift (iOS), Java (Android))
- Data Science, Data Mining, Analytics (R, Python, SQL)
- Windows Development (C#)
- Embedded Systems, or OS (Operating Systems) related work ( C/C++)
- MacOS (Swift)
NOTE : some of the examples given above are exactly as they are stated to be, examples only, and of some of the popular languages used. These are only a few suggestions, not to be taken as concrete and unalterable advice. There are a plethora of languages involved in the programming world, and one must do their research accordingly to decide whichever language they would prefer to choose to embark upon their learning journey.
Also, check with the respective company that you are hoping to work with (considering you are learning to code to get a job later) and find out the languages they require.
In a nutshell, picking a language very much depends on what you wish to do with it. So choose wisely.
Picking good learning resources
There are innumerable number of resources out there on the internet which may help you on your learning journey. A majority of the resources pertain to the following categories –
- Online (and also offline) Courses
- Tutorials (on websites and quite a few blogs)
However, as the number of resources are many, the number of resources which only claim to help (but don’t necessarily do so) are also of a large number. So, it is of utmost importance to make sure that the resource you depend upon to learn coding is efficient, veritable, and helpful, lest you waste time on it only to realize you need to start again from scratch.
NOTE : Just because a particular resource requires you to pay a fee doesn’t necessarily mean that it is useful. There are plenty of amazing resource materials out there which are free of cost, and you can definitely find them with a bit of research.
Maintaining a journal
Practice a convention of noting down whatever you have learned for the day (or week). It helps to process the information you have received, and can also function as a helping hand in reviewing what you have learned. Moreover, you can go back to review if you have taken a break from programming for a short time, and reviewing becomes easier as it is written in the way that only you have understood the concept.
It would be better to make a soft-copy of the notes than on paper as searching through the notes becomes easier to do so. All the same, sticking to whichever works for you is best for the long run.
Practice a LOT
Quite a lot of practice is required to even write basic code. One needs to practice (i.e. get their hands dirty in the code) regularly to make significant progress. For example, practicing for an hour everyday is much more beneficial and sensible to do so than working on your coding skills for 7 hours straight on one day, say a weekend. Practice on different kinds of problems pertaining to learning the basics, and once you get the gist of it, branch out slowly onto more complex programming concepts, such as Graph Theory, Dynamic Programming, etc.
Working on projects, including Open-Source
Once you have developed basic skills, you need to develop them further to actually learn to create something (a useful application) with those skills. Work on projects to further hone your skills to learn to create something that can be used in real-life.
Also, working on open-source projects on GitHub is a very useful method to learn. Many companies require potential candidates to have prerequisite knowledge on how to use GitHub , so knowing beforehand and actually having relevant experience in working on it gives your resume a boost when you are applying for a software-related job.
Even the most experienced programmers use Google when they get stuck on a particular programming problem (finding a solution on Google is a skill in itself!). Do not hesitate to ask for help, in person or online. The internet has many alternatives from which you may seek help –
And many more exist. Before asking a question on a forum, make sure that such a question has not been asked before and answered as well. The possibility of this, especially when you have only begun to learn programming is negligible. Preventing the repetition of questions on a forum helps keep it neat and concise, something you will appreciate when you are a full-fledged programmer.
Some people (programmers with decades of experience) on online coding websites do offer to mentor (for free) some people who have a genuine interest in programming and who show substantial potential. However, in the event that you do find such a person, do not trouble them with questions for which answers can easily (or with a little effort) be found on the internet. Having a mentor is a privilege, and it would be highly unfortunate to lose them by asking trivial questions.
NOTE : Always be kind and on these forums, and do not engage in petty fights. It may result in you getting banned.
Some more advice:
Do not expect yourself to know everything
Initially, you may see lots of interesting concepts of programming which you may add to your list of goals (things you wish to learn or work upon). As a newbie, your sense of time will be skewed. The amount of time you think it will take you to learn that particular concept will be much lesser than the actual time it will take. Learning to code takes time. Try not to burden yourself with too many things at once, (remember, small steps) or else you will be overwhelmed by everything and be faced with a feeling of despondency. (Also, a potential candidate for a coding job interview isn’t expected to know everything.) Start will smaller goals, and try not to spread yourself thin.
Learning from programming videos
Learning from online video tutorials is helpful, but only watching them without getting your hands dirty in the code isn’t particularly so. You may understand how the code works and how it has been implemented, and feel that you will be able to write a piece of code after that and herein lies the conundrum. The moment you sit down in front of your PC and begin to type in your code, that when you (a newbie) realizes that no matter how much you wrack your brain, it is exceedingly difficult for you to come up with anything, in spite of thoroughly understanding the concept in the video. Watch the videos if you get stuck with something while you have already begun to code. Variegating the kinds of videos you watch will also help you understand your learning style.
Write Clean Code
If you plan on working in the software industry later on (or even work on open-source projects), it is very important to make it a habit to write clean code. Unlike the days of learning, you will be working with a myriad of people in a group on software. Hence, it is absolutely essential to write clean and properly structured code so that when your work is viewed by someone else (and it surely will), the person will face less issues in trying to make sense of what is written. Avoiding duplication of logic, hard coding (you will understand what all this is when you actually start coding on a regular basis) will save time and effort in the long run.
Don’t give up
You will fail a lot along the way, and may even be tempted to give up. Do not allow rejection to do so, and keep trying. If something is not working out in spite of you having tried many times, perhaps you may need to go for a different approach. Yes, programming is scary, and it is hard. Whosoever says that it is easy isn’t every knowledgeable when it comes to programming . Self- teaching requires you to have sufficient determination. It is NOT easy.
Take a break for a while if you have coded to the point of exhaustion. A little break may be just what you need to give yourself a boost before you can start again. Focus on other non-coding activities in your life as well (you surely will have those) in order to take a break.