My 19-Year Retrospective on Programming: Lessons Learned and Advice for new Generation 04/05/2023 ~ Views: 1998
As a self-taught programmer who has been in the industry for almost two decades, I have seen the programming world evolve and change drastically over the years. Looking back, I can see many things that I would have done differently, and I hope that my experiences can help guide other aspiring programmers on their own journeys.
When I started in 2001, I had a dial-up connection and access to about 30 different programming languages. I was eager to learn as much as I could, so I spent a lot of time experimenting with different languages and technologies. This was a great way to get started, but looking back, I realize that I could have saved a lot of time if I had focused on a few key languages and technologies from the beginning.
In 2006, I landed my first job as a .NET C# SharePoint developer, working for an outsourcing company that provided services to clients in the USA. Over the years, I worked for a few different outsourcing companies and also took on freelance work for companies in Europe and the USA. These experiences taught me a lot about working with clients, managing deadlines, and collaborating with other developers.
In 2013, I decided to start a company with a friend, which we ran for six months before deciding to move on. This was a valuable experience, but looking back, I realize that we didn't have a clear enough vision for the company and we weren't fully committed to making it work.
After that, I decided to focus on contracting and freelancing full-time. In 2015, I made the decision to specialize in one stack and chose Ruby on Rails. I was tired of having to know ten different .NET sub-stacks and wanted to focus on one technology that I enjoyed working with. I spent nine years working with Ruby on Rails and had a lot of contracts, but I realize now that I could have had even more success if I had chosen a more in-demand technology like JavaScript.
One thing that I learned early on in my career is the importance of proving yourself as a developer. I was a self-learner and had to prove my skills to others in many different ways. I found that the best way to do this was to build stuff and to learn as much as I could. In my opinion, developers who have deep technical knowledge but don't have anything to show for it, such as projects, blogs, or apps, are lacking in terms of the full software development profession.
If I were starting my career today, I would definitely choose JavaScript and stick with it. JavaScript has become the dominant language in web development, and it is used in many other areas as well, such as mobile app development and server-side programming.
For beginners, I would advise choosing a tool that provides a lot of options. Ruby is a beautiful language, but at the end of the day, you need to make a living. In my experience, the Ruby community has some of the most arrogant members in the programming world. During job interviews, I often found that interviewers would ask obscure questions that were easy to learn, but if you didn't know them, you would fail the interview. Even Ruby on Rails, which is the easiest framework out there to learn and do, can be daunting if you encounter people who are more interested in showing off their knowledge than in helping you learn.
The Ruby on Rails Interview Bible features over 500 interview questions with short answers and explanations, while The JavaScript Interview Bible includes more than 1,000 interview questions with short, easy-to-understand answers. The React JS Interview Handbook covers all the theory and entrance-level information one needs to know for a job interview.
Whether you're a junior or senior developer, an HR personnel, or any kind of interviewer, these books can provide you with invaluable interview preparation materials. Recruiters and HR personnel have found these books helpful in screening candidates for the initial interview.
In conclusion, if you're starting out in programming today, I would recommend choosing JavaScript or Python and focusing on building a portfolio of projects that showcase your skills. Don't get discouraged by arrogant people or obscure interview questions; instead, focus on learning as much as you can and building stuff that you're proud of. With hard work and dedication, you can have a successful career in programming that will provide you with many opportunities and challenges along the way.