Experience in Learning to Code: From a Non-Programming Background Perspective

Hi, I’m a final year student studying mechanical engineering and I find myself as a person who likes to code. As a code enthusiast, I enjoy automating tasks and analysing data through code. I started programming 4 years ago, with Python as my first language. Fast forward today, I found myself working on data analytics on Python, besides having learned other programming languages for different purposes such as C for embedded programming (making machines move) and also C#, JavaScript, CSS and HTML for app and web development. Back when I started programming, I did not have a mentor and my learning path felt terrifying at first as I stepped into an unknown world where I had to learn independently. It might sound crazy for non-programmers, but this has been quite a ride and a worthwhile experience, and also a great investment in your skillsets development.  In this post, I would like to share how did I teach myself to code, from my perspective who came from a non-computer science background.


Make full use of online resources

There are plenty of online resources to use that are available and most of them are free to use. I started coding from CodeAcademy, which I would strongly recommend when it comes to learning a new language such as Python or JavaScript. I further develop my skills through platforms such as Youtube and Datacamp and forums such as Quora and StackOverflow if I ran into a problem with my code aka bugs.

One tip when choosing which online source for beginners will be to know which platform suits you best. There are numerous tutorials online however there are a few which are suited for newbies as half of them assume that you have prior knowledge of the material. I’ve personally felt frustrated and thinking that I was not capable to code in the first place and there’s a huge mountain to climb, but it was not the case. Read online reviews of a course and ask friends. Hence, here’s a compilation of 25 websites to start your coding journey.

Also, there are snippets of codes that have been developed through the open-source network that you use to your advantage. Pick it apart and reuse it. When you do that, do know how the code works and not just copy-pasting them so that you know how to adapt it for your future work.


Don’t stress over what language to pick.

Don’t get bogged down picking the “perfect” language to learn. Your goal in the early days is just to become familiar with the basic concepts of coding, which are similar across all languages. However, once you’ve chosen a language, I would recommend that you stick with it and master the language at least before you try others ( while you are still very early in programming). It is important that you understand the syntax of a language and you can execute a project or tasks well using a language rather than learning many languages and being half-full in your knowledge. Once you’ve grasped the concept of programming from the language, then it will be easier to learn other languages using similar concepts learned.

I’ve personally learned Python as my first language which had easier syntax so that I would not need to worry too much about bugs. Regardless, feel free to choose the language that you feel suitable for yourself and stick to it while you explore the potentials of the coding world. However, if you are learning to do a certain task or a line of work, then do know that your choice of language does matter.

Here’s a list of programming languages that you can try.


Code regularly (Learn from a simple project that interests you to keep motivated)

Try to code, well at least 3 times a week for half an hour.

Now, how do you keep yourself motivated to code and also filled with new challenging tasks to code? Find a task or project to build that you are interested in, such as building a programme that automates hobbies. For example, if you love photography, why not build a portfolio website to showcase your best pictures. Or let’s say you love spending time in the kitchen. Why not build a simple recipe app to gather all your favourite recipes into one place? Personally, I enjoy building projects that help people in terms of productivity, in which my recent project is a URL shortener (https://spshurl.herokuapp.com/).

It is also advisable to start small. Small projects take lesser time for you to complete and thus you can complete a diverse range of projects to improve your skillsets in various aspects as a beginner. This allows you to focus on developing your understanding of a language and also the thought process in building a code. For example, if you want to build a portfolio website, don’t try to build the best portfolio site in the world (just yet!). Instead, start with a simple site and build it with HTML and CSS. When you feel confident working with those tools, you can start adding dynamic features with JavaScript.


Get people to work with you

As a coder, sometimes the best way to get around a project is to work with a partner. Working with someone of similar interest helps you get motivated as well as improve the quality of the work through sharing of ideas apart from an upscale of manpower.

As a beginner, it gets difficult to have a partner to work with you especially if you come from a non-computer science background. I would suggest that reaching out to the wider community of developers will be great to start. Go onto sites such as Facebook, freeCodeCamp, CodeNewbie and even Twitter and you will find groups of the coding community that you can join where you can interact with people of similar interests.

Frankly, I wish I’d done more of this socialising when I started coding. I too often spent time grinding away at a problem, myself, instead of asking for help. When I did talk to other coders about problems I was having, inevitably they’d suggest an approach that helped. Thankfully, I now have a team of people to work with to develop programmes and learn together.


At the end of the day,

I believe that everyone is capable of code, regardless of their background and age. The learning experience takes constant work grinding and can become frustrating at times, but I believe that all these difficulties shape you to understand the logic behind the computerised world better and also shape your thinking to be more creative when solving problems. Don’t give up and have fun programming!

Leave a Comment

Your email address will not be published. Required fields are marked *