What was your initial path to reach to this point in your career? Like what you did in college (if any) and right after that? And what would be the best advice for someone who is just starting professionally?
I never studied in college. I didn't buy books most of the time and I was happy with a C or D if that's what my class required. However, I was really passionate about computers and spent every minute of my life on one. I fixed computers for family and friends because I loved doing that. I was constantly broke so I looked for work in tech since I was 15. One of the first things I did was help students in nearby colleges with their exams and projects. Sometimes I got multiple students from the same class and I had to implement the same project in 3-4 unique ways so that neither of them got caught. This gave me a different outlook on programming. I was forced to think about solving the same problem in 3-4 different ways. At the same time, I took up a job in the community college I attended to teach computers to the professors.
The next best thing I did were a couple of internships. I went overboard and I worked two jobs, a co-op outside the college as a Web Application Developer and an internship at a lab in college as a Software Engineer (which didn't last too long because of time constraints).
This gave me an edge compared to my peers.
I graduated with the lowest GPA, so I had a hard time getting interviews at large companies mainly because they were so fixated on that metric. It is a very skewed metric and does not reflect a person's abilities to be successful at programming. All my friends with 3.8+ GPA had interviewed at large companies including Microsoft and none of them got in (One of them did about 4 years later)! Eventually, five years later, I got an interview at Microsoft. It was out of the blue when I wasn't even looking. The rest is history!
Although it appeared like I was all over the place, everything I did, enhanced my resume and helped hone my skills around problem-solving. This is the basis for being successful in the long-run. You have to keep learning all the time and get to a point where you can do just-in-time learning. Once you know a programming language like C++ very well, you can pretty much learn anything. Other than that you want to focus on Data-Structures, Algorithms, and Design Patterns.
The best advice I can give is to worry about yourself and forget about what everyone else is doing. Forget about the frameworks of the day and libraries of the year. Come up with a plan and stick to it. Learn programming like it's the 90's and focus on the basics and practice on real-world projects.
I ended up doing a whole post about the advice you gave, it is very enlighten and made me remember many things that happened lately and some questions I had. Check it out if you have the time. :D
One thing that I didn't say there and I plan to talk about later is about the multitude of frameworks and the difficulty of choosing a path. This advice was big, I really need to focus and I'm trying to.
Thanks, Leonardo, for writing that post. I enjoyed reading it.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.