How I decided to learn coding for real and chose my first programming language

I’ve been always fascinated with technology. I always thought that it’s really cool to actually create something, whether it’s tangible or not.

Somehow, I ended up in the Oil & Gas industry :)

And I did lots of Sales, Marketing, Business Development and Consulting. Some of it was low-tech and some of it was high-tech. Some of it was online and some of it was offline.

And somewhere along the way I got interested in web design, online marketing and SEO. And I built some stuff, that was fun. WordPress is cool, SEO is cool. I even wrote a book about it: https://is.gd/seobook 
Then I realized that I wanted more. I wanted to be able to build cool things. Interactive, truly useful sites and applications. This required coding. Lots and lots of coding. This is how my coding adventure began.

As most wannabe software developers I started with free online courses: https://www.codeschool.com/, https://www.codecademy.com/learn, https://www.udacity.com/ , etc. They are all very good. Especially the paid versions. Then there were the books. Some books are pretty awesome. However, they do require longer attention span and better discipline, comparing to the short online videos :) By the way, this is an amazing source for high-quality FREE eBooks on coding and different popular technologies: https://www.syncfusion.com/resources/techportal/ebooks

Quite quickly, I started feeling lost & confused. Once I (sort of) decided to learn how to code, I realized that: 1. There are gazillion programming languages and they all can achieve basically the same result 2. Learning the language (no matter how terrifying it is) won’t make me a programmer. It was quite depressing to realize that I also need to know (at least some) HTML, CSS, version control, algorithms, frameworks, deployment, databases and the whole “front-end vs. back-end” thing.

As many other beginners I started exploring the limitless wisdom of the internet, trying to figure out what language and framework I should really focus on. That is a tough thing to do when you know close to nothing about software development.

I should write another post later about me jumping from language to language :)

To make long story short — I decided to focus on C# (C-Sharp) and the whole “Microsoft Universe”: .Net, ASP.NET, ASP.NET MVC, Visual Studio, etc. It all started with me discovering Visual Studio — the ultimate IDE (Integrated Development Environment). Even though I was very new to IDEs I was very impressed with how intuitive, helpful and streamlined everything was. You can actually work with gazillion different languages in Visual Studio, but I felt it was especially nice for C# and ASP.NET. With some extra (free and paid) add-ons you can do literally anything with Visual Studio and your job as developer will be definitely easier.

C# is definitely not the language you hear/read about when you are looking for a (first) language to learn.

As far as I understand, the tech startups and coding schools/boot camps/courses drive most of the recent “OMG! Coding is so awesome!” movement and therefore the online content. And they rely heavily on Ruby, JavaScript and the frameworks related to these languages. And the main reasons for their popularity are (I guess): Ruby is relatively easy to learn and has a good web framework — Ruby on Rails; and JavaScript is cool because it can rin in the browser and you can write pretty much the whole app (frontend + backend) in a single language.

Then you have Python. Getting very popular. A very cool language. I did try it. Very clear and concise. Very. The reason I decided not to go with Python (for now) is that it’s not that easy to work with when it comes to web development and mobile development.

Then you have Java. Java is still the king. But I just “felt” it was too complex for a beginner and not the best choice for web development.

Meanwhile Microsoft people recently did their best to make their software development universe more flexible and less Windows-centric. So, I went for C# and ASP.NET. Once I master the C# language and its web frameworks, I’ll be able to essentially write the same code for desktop, web and mobile. As for mobile, https://www.xamarin.com/ makes it considerably easier to create mobile apps, using Visual Studio and C#.

I’m obviously going to polish my Bootstrap, HTML and CSS skills, because front-end is not going to build itself :)

Once I made a decision to focus on C# there was a big question: HOW??? What are best resources to learn the coding language properly? On my own? Boot camp? Something else?

The only thing I was more or less sure about at that point was that the usual online courses won’t work. I needed something with more structure, more intense and more thorough.

For a while, I seriously considered attending a boot camp. C# not being the sexiest programming language is not taught in many coding bootcamps. But I did find one solid school. And got accepted.

Then I decided not to do it. The more I thought about learning coding and the more I read about it, the more I realized that after all “All education is self-education”. Guidance and structure ARE important, but this is what we have the books and the internet for, right ;-)

I can go on and on about self-education. To make long story short I went for this course as my main learning tool/resource: https://www.devu.com/ Bob Tabor is a very good teacher and the lessons cover all C#-related topic in a structured manner. On top of that, the exercises are great. The course is quite demanding. However, I am not at the boot camp and can decide myself how much time I want to dedicate to each topic. Sometimes I get a feeling that the intensive coding bootcamps try to make you aware of as many topics and technologies as possible. Awareness is definitely cool and actual understanding is even cooler.

After about a week of doing the Bob’s course, I decided that I needed one more learning resource. I always liked having a “second opinion”. I just always felt that I remember and understand material better when I get it from different sources (and different angles).

Besides, I felt that in addition to Bob’s very practical and hands-on course I needed something a bit more “computer-sciency” and detailed. Which meant that one of the gazillion “Learn C# right now quickly forever” books simply would not work.

I ended up choosing this book: https://is.gd/csharpbook Being a proper textbook, it’s big, expensive and scary. I’m pretty sure I won’t be able to read it all and do all the assignments. But this textbook is truly great. It’s very detailed (in a meaningful way), very well-structured and visually appealing.

So, my C# adventure continues :) I hope I’m moving in a right direction. I hope I’ll become a good developer. I hope I’ll build some cool & useful stuff. And I don’t really care whether I’ll build it for Microsoft, for a startup or for myself. I just see a great intellectual and creative value in the ability to create technically complex & creative software and apps.

Learning to code is hard. But it’s interesting, it makes my brain better and it makes my life more interesting :)

Good luck to us all!

You can always find me on my website/blog.