Learning how to program from scratch
Tags: codenewbie, webdev, beginners
Published: 2020-02-06 15:42:01

This article was originally published back in 2016 and it's based on my own experience as a self-taught programmer.

I was thinking for quite a time to learn how to code after I realised that ideas are cheap and I must learn how to put them into practice. The only way to do it is by learning how to program, or to have a Steve Wozniak as your best friend, not my case though.

So, my rationale was the following, by learning how to code I can found my tech startup (yep, I was in the startup fever mode) and if that plan fails I can get employed for an above average salary as a programmer. A pretty good plan, isn’t it? Now let’s march forward and tell you my expectations and how the reality turned out to be infinitely harsher than I thought.

**Expectation: Getting into coding without analyzing too much is just fine**

**Reality: Precious time is wasted and you get even more confused**

I started my coding journey with the idea of learning Swift — the new and shiny programming language of Apple — and making mobile apps for the App Store to make a few bucks. Why would I do that? Because I have read a couple of articles from tech crunch and it seemed to me that is quite a good opportunity (not quite, after all) and how hard can it be to make to make an app for iPhones and iPads? As it turned out, not so simple as I thought.

The mistake I made was to start with Swift as my first programming language just because I thought is easy to make mobile apps and also to make some profit out of it. I didn’t make any research to know the options out there in the programming field. So, after a month I gave up on Swift and I started a course on Udemy on web development, which was the starting point for getting interested in programming for the web.

**The Force Awakens**

I began to read more and more articles, blog posts, opinions on what to learn and not to learn as a beginner and slowly a big picture started to be drawn inside of my mind.

Mobile:
* Apple: Objective-C or Swift
* Android: Java
* Microsoft: .NET

Web:
* HTML & CSS + Java/Javascript/Python/.NET/PHP

Maybe the best option could have been to learn Java because it’s such an all around programming language, but I didn’t like the Android platform (still don’t) and just mobile-oriented seemed to narrow to pursue it, so I thought that choosing the web would be the better option for me. I could make a responsive website and work on a desktop, tablet and a smartphone as well.

**The Decision**

So, Javascript seemed the obvious option (it’s one of the essential technology of internet content production, duh!?) because it’s kind of easier than let’s say Java and you can build something basic really fast, which matters a lot in the beginning because you want to see the concrete results of your work as soon as possible.

Also, this has a great psychologic impact on beginners and self-starters because it gives you the believe that it’s possible to start from scratch and it’s not just your crazy optimism at work.

Of course, at the time I started to learn JS I didn’t know that you can even build a web app with both client-side and server-side written in JS, so in hindsight it’s the best decision I could have made. Since then, I focused on learning JS and the MEAN stack, especially the client-side part of it.

**Lessons Learned**

To wrap it up, if I could improve something at the way I started my coding journey would be the following:
1. Research more on what can you do and build as a programmer
2. Focus on what you really want to build and create
3. Focus on the tools which you can use to give life to your ideas

Happy coding!

If you liked this article and want to see more of these, then follow me on [twitter](https://twitter.com/RautaAlin) and on [dev.to](https://dev.to/rautaalin).