Always a beginner: Jumping from one programming language to another
Tags: career, coding, beginners, discuss
Published: 2019-03-27 14:25:05

---
cover_image: https://cdn.pixabay.com/photo/2015/04/20/13/17/work-731198_1280.jpg
title: Always a beginner: Jumping from one programming language to another
published: true
description: With so many technologies to choose from, have you ever felt so confused?! In my youth, I tried to learn a lot of 'trending' programming languages. It's tough to be the jack of all trades, master of none. How did you come to choose the programming language you now wield?
tags: career, coding, beginners, discuss
---
A lot of people say that to succeed in the business, especially in the Tech world, **you must focus on one thing, and be _damn_ good at it**.

But how do we know which language to choose from? Have you ever felt so lost and so confused?

I'm willing to bet that at some point in our lives, we all have. 

I handled my confusion differently -- **I tried to learn as many as I could** in my youth without nothing much to show for it.

A lot of us didn't know where to begin... so we depended on education. As did I.


# High School: Java, C++
![High school gif](https://media.giphy.com/media/opAuQg3LS5EWY/giphy.gif)
My batchmates and I were fortunate enough to be one of the first students who had programming in high school. There, we learned the very basics of Java and C++. 

For one semester each, we were introduced to this bizarre world of syntax, code compilation and execution -- and a _lot_ of printing! We covered until arrays. As if loops weren't hard enough!


# College Education: Java, C, C++, COBOL, HTML, CSS, JavaScript etc.
![College gif](https://media.giphy.com/media/WBnvJRRmQTZXW/giphy.gif)
Then, when I went to college and chose the wrong course in school #1, I took a programming class for two semesters: *Java*. We actually made a game in the end. We covered advanced topics: graphics, sockets, threading etc.

When I shifted to Computer Science and went to school #2, we were bombarded with programming languages -- the very foundation of them. I learned:
1. **C** - The first programming language taught to freshmen. I absolutely hated it. I never really liked procedural programming. And, oh, pointers! Ugh!
2. **C++** - I liked this one, even joined a programming contest at school and won second place, I think. Finally, some object-oriented programming, I thought.
3. **Assembly** - Low-level programming. I struggled printing my own name.
4. **HTML, CSS, JS** - Just the basics. Nothing fancy. At one point, we were asked to replicate the google balls animation and replace that with our name. That activity was pointless. We just changed the coordinates.
5. **COBOL** - All I can remember is 8 spaces! And we had to write it. On a yellow pad paper.
6. **Mobile Development - Nokia** - Oh, don't even get me started on this. 
7. **Groovy** - This was like Java and proved to be helpful while learning python. It could take some getting used to, especially when you come from Java and C++ programming languages.
8. **Java** - I joined programming competitions in and out of school. Never won outside of school, though. Haha.


# College Side-hustle: Python, Swift, JavaScript
![get shit done gif](https://media.giphy.com/media/C2V3bklNmp9K/giphy.gif)
Thinking that what school had to offer was _completely inadequate_ for the "real world", I studied online.

I started off taking free online classes on [Coursera](https://coursera.org). Back when it wasn't so popular, most of the classes were actually for free. I studied Algorithms 2, NLP (for our Thesis), Python etc.

Then, I bought a course on [Udemy](http://udemy.com): Programming in iOS Swift 6. In the years to come, I bought 2 more courses--iOS Swift 7 and 8--and never got around finishing it. What a waste!

I also started studying more front-end, web development languages like CSS and JavaScript on [Code Academy](codeacademy.com).


# Internship: Java, Java EE, Spring, Hibernate
![internship gif](https://media.giphy.com/media/rld1hYOuC7QGs/giphy.gif)
I interned at Company X and was immersed in a world full of highly skilled Java developers, masters of their craft. 

I was exposed to design patterns, frameworks, MVC, and Java Enterprise Edition (J2EE) programming. 

It was amazing. For the first time ever, I actually felt like I was a part of something bigger. I was being productive.

**We developed a full-blown web application on our own**. It was one of the best experiences ever!


# After college, Job #1
![job 1 gif](https://media.giphy.com/media/UjHM1TuLRJS4E/giphy.gif)
In Job #1, I was exposed to mostly C# .NET, Visual C++, and C. My programming exposure was predominantly for C#. It was easy to learn because my forte was Java.

I still had side hustles as well: I continued with iOS, dabbled with Machine Learning etc.

Just like before, however, I have never, not once finished a course on [Coursera](coursera.org) completely. Something always comes up that makes me miss a programming/assignment deadline -- outing, OT, family, other real-world problems etc.

I had some freelance projects as well, all of which were programmed in Java.

# Job #2 (Present)
![sheldon swag](https://media.giphy.com/media/49IDVfyaLUwLK/giphy.gif)
Now, I'm a C# .NET Developer. Yup, from Java to C#, indeed.

I still do some freelance projects, still in Java. Why? Because most projects are desktop apps. And I'm using a Mac.

I remain consistent in my drive for learning and continue to subscribe to *free* MOOCs. But I still can't finish them.

On top of that, I also learned the basics of **React Native**. I joined a couple of hackathons and developed prototypes with my team for iOS and Android. That has been one of my ultimate goals -- to publish an app on the App store.

# The Ultimate Dilemma
![idk](https://media.giphy.com/media/xThuWmKYZKsZJG7I1a/giphy.gif)
I have learned _a lot_ of programming languages in the past and have covered most, if not all, of the basics. Not much has come from it. And how could it? I only scratched the surface. 

I mean, you can't create an app -- any app, web, desktop, mobile -- if all you know are arrays, printing, loops, and basic UI. No, you have to learn the integration, study the libraries, the API, learn new components, build... _so much to learn, so little time_.

"Jack of all trades, master of... [a few]"

![how](https://media.giphy.com/media/10yIEN8cMn4i9W/giphy.gif)

I still want to finally publish an app on the App store/Play Store. 

Also, I want to legit improve my C# skills because I love my job. 

I want to finish my MBA with flying colors and become a future founder or co-founder in the near future.

I also want to eventually become a renown blogger and publish a book someday. 

**I want to do so much with my life**.
But how? How can I become all those things and, at the same time, start learning and mastering a new language?  

## To the programming beginners (self-study)
You're lucky. You're choosing the programming language you want to study based on your goals and interests. 

## To the CS / IT students
Stick to one programming language -- fall in love with it and master it. You will be a subject matter expert in no time.

I have known a handful of people who made it when they focused on one language. They became experts in the field and are now well-traveled Tech speakers. 

## To the people who have made it
How did you come to choose the language that which you now are an expert? Any advice for a puzzled, goal-oriented, and passionate developer?