Nowadays, there is a huge interest in learning how to code. You will notice plenty of articles coming up in your social media feed, in technology portals and even in mainstream media that emphasize the importance of learning to code, no matter who are you or what you do. A major annual campaign run by code.org, a US based non-profit organization, called Hour of Code promotes coding, and is endorsed by many celebrities and pioneer software personalities who are featured encouraging computer science education and coding.
As in technology generally nowadays, there is also a lot of focus on women’s representation in this field, which is encouraging. Indeed, the number of organizations promoting the participation of women and girls in coding is rapidly growing.
I myself recently experienced the high level of interest from all kinds of people when I was bombarded with responses to a Facebook post on my profile offering to help people learn how to code. Within 24 hours, over 100 people asked to be included, and were invited to join my newly created Slack team account for those who wish to learn how to code.
So all this attention, the campaigns and growing awareness have become a business opportunity for many and a way to give back for many others. coding bootcamps are increasingly popular, computer science and IT institutes are flourishing, and schools of all levels and disciplines have started to pay serious attention, with many offering courses in coding by computer science educators. Additionally, many organizations and companies, as part of their corporate social responsibility commitments, have started to promote computer science and have supported their employees to learn coding, also hosting and sponsoring events for this purpose.
These are all positive changes. However, learning how to code needs more than signing up for a one-off course. Like any other skill, learning to code requires dedication, discipline and grit. I try to make this point for anyone who approaches me wanting to learn coding. Let me elaborate further:
- Write down why. In your notebook or in your newly downloaded Sublime Text editor, write down why you want to learn coding. Is it because you see your friends talking about? Is it because you read a report saying that your current job is at risk in the near future and you felt the panic that pushed you toward a new field? Or is it because you want to develop an app or develop your startup’s website and you can’t afford to hire a web developer? Whatever it is, write the reasons down and then consider whether you have the right incentives and motivations, because it is motivation that you will need to ultimately succeed. If it’s a passing interest, or getting on a fad bandwagon, chances are that you will quit before you really grasp coding. Now, decide which of the following categories you fall into:
- I am just curious to know whether I can learn coding. I’m reading about it everywhere and it sounds cool. If your motivation is as simple as this, then you might want to take some time to investigate further whether coding is your next best move, or find the ‘sweet spot’ motivation before diving in, so that you’re more likely to stick with it.
- I want to develop my startup website and I can’t afford to hire a developer until I have investors. This is the driving incentive behind why many individuals want to learn coding. You may continue coding after your first project or stop after one, but even if just for one, you will learn a lot, and you’re in a great position to remember what you’ll learn if you’re applying it to a project you are working on.
- I want to switch careers and I see myself becoming a developer. If you’ve done your research, visited developers, tried some tutorials online and ordered or borrowed some books to read and you’re serious about becoming a software engineer for life, then congratulations, you’re ready!
- Make time. Consider whether you can you allocate the time needed to learn coding, which I’d suggest be at least 30 minutes a day for at least six months, but ideally up to a year. Remember, it takes 10000 hours to become an expert in a subject, if you are serious.
- Get to know the history and context. If you want to learn a language, you can learn it quicker if you travel to the place the language is spoken or at least read about the history and culture of the country where the language is spoken. If you want to learn how to code, learn as much as you can about computers, their history, impact on society, and evolution, as well as the mechanics of software and hardware. Code.org has a collection of videos explaining fundamental concepts in simple language by experts and you can read blogs, watch videos or read books to complement your learning to code with this contextual background. You can also ask a developer friend or visit a software startup in your community. You can learn a lot from interacting with those who have already mastered coding more than anything.
- Plot your next move. Now that you asked yourself these tough questions and whatever your answer is, you want to proceed and came here to follow a path to go ahead, I recommend you the following:
- Have a project in mind. You’ll learn more easily if you are learning to code for a real project. If you don’t have one in mind, try to come up with something you feel excited about. For example, think of an app you can create to help you or someone else address a compelling problem, or build a website for a non-profit organization or for a friend’s startup.
- Use online resources. I’ve come across many success stories of developers who got started from taking courses on edx.org, codecademy.com, freecodecamp.com or coursera.com. Go ahead and start there too. I’d also recommend joining freecodecamp.com community, where you can follow a curriculum and start learning how to code from scratch. If you struggle with the the curriculum you can make use of the forums and chatrooms provided by freecodecamp or from your friends and other communities. Stackoverflow.com is where I answered many questions and found answers to many of my own questions as well as on w3schools.com which helped me with anything from HTML to Node.js.
- Find a partner or a community. It is common to get stuck in a simple problem in coding and not be able to find an answer for hours. This happens even to expert programmers, but it can be especially disappointing for beginners. That’s why having a partner where you can do pair programming or a community where you interact with people at your level or higher, to ask questions, or just for some solidarity! Consider checking meetup.com or search Google and Facebook to see if any coding or technology events are taking place nearby you.
- Read a lot. Follow successful developers’ blogs, Twitter, Instagram or Facebook accounts of developers to learn from them, their experiences, successes and failures. You might also interact with them by email or comments. I recommend these links in particular: Best Web Development & Programming Blogs for 2017, 7 Blogs You Should Really Read If You Are A Student Programmer, 15 Female Web Developers To Follow On Instagram. In addition to blogs and interactions in social media, I recommend reading books about coding, for example on HTML5, CSS3, JavaScript or other languages you are interested to learn.
I hope these points help you start your journey toward learning how to code. Let me know if you have any questions, suggestions or ideas, in the comments. If you want to find yourself a community for people learning to code, or you want mentor beginners, feel free to join my Slack team.