First, Sorry for my English.
I'm a French developer and I will turn 40 years next month, 18 years in IT world.
For my first post, I would like to speak about my feeling after many years in this domain.
With all the new technologies, it's difficult for many programmers who started coding in the 2000's, to find the good solution/languages/platform for a new project.
Should I still use PHP? Or another language like C#, Python or NodeJS?
Should I use the cloud technologies like containers (Docker), AWS or Azure or use a dedicated server?
Should I use a microservices or a monolithic architecture pattern ?
What about the front? Should I stay with a classic UI like Boostrap/Jquery or go on Angular, Vue.Js ?
What about the impostor syndrome?
From my point of view, many questions where there is not only one answer.
I'll describe my career. Maybe you are on the same situation today with the same questions and feelings.
About coding, I've learned with assembler and C++ at school. During my studies, I've learned alone PHP 3, HTML and CSS by coding all the nights on Word (I know...) and then, Web Expert and Dreamweaver 3. At this time, I took a shared server in a company that no longer exists today.
After I got my diploma of Higher Education, I started my career in a web 'startup' around 2001. In this company, I've learned ASP 3...
ASP 3 was not the best language for OOP so I lost the concepts about SOLID, abstraction, heritage, polymorphism and many others.
When you do not practice, you forget.
In 2005, I've been hired in a bank and no one was programming in the new technologies.
All others programmers were working on Cobol and RPG on DB2 / AS400 environment.
So, for me, the challenge was to connect this "old" interface to the web and and I did it with success by learning Cobol and finding solutions...
In 2009, after all this time to code in ASP / PHP 5 / Cobol, I started a migration a migration to C# because for me, it was the best option but my object methods was more like procedural code.
I avoided learning Silverlight and Web Form technologies because I did not believe in it. (Even if today, I have to manage a project on this...)
In 2012, I was still in the bank but a contact introduced me to a friend of him because he was looking for a web developer for a new platform : sell virtual formations like e-books and videos, be able to make A/B testing, deal with funnels conversion... and I accepted it for the challenge.
So during the day, from 9am to 7pm, I was working for the bank. And from 9pm to 1am, I was working for this client...
I've learn about Marketing strategies, how to use Google Analytics, Adyen, Paybox and Paypal payment gateways, how to launch a new product, emailing strategies, manage Wordpress etc.
That was not my profile but I had to adapt and learn.
So today, I've learn many things in programming but not only.
And, for me, that's the core of a programmer (junior/senior) : read, practice and learn.
But when you read and learn too much, and get many informations, for me, you can't be sure about your technologies choices for a new project because :
- Maybe this technology will be like Silverlight and disappear
- You do not practice enough so your code will not be created in the rules (
Hello worldis not enough)
- It's not the last technology/pattern about every body speak (microservices at this time)
And many others reasons...
All of these points challenging you to not feel the Impostor Syndrome. And that's my problem today : to be sure that I'm still good in what I do every day.
When I speak with 'old developers', It's the same feeling for some of them : I'm an Impostor because I do not master all the last technologies.
And this syndrome can be dramatic : you wake up every morning thinking someone is going to unmask you and replace you. Thinking that all you will do today will not be correct. Finally, sometimes, you put your own life in question and that's the worst feeling.
That's the problem for many developers : to not master all the last technologies and feel out of date.
But I can answer to this : you can't. You can't master all the new technologies. For me, nobody can because you need to practice it every day to not forget it and it's impossible except if you have 15 projects at the same time, using many different platforms...
For me, you have to choose a language where you feel comfortable. For example, choose C# or PHP and be good. Keep in mind the base of OOP if you need it and do your best.
Choose a framework for PHP : Laravel, Symfony, Slim... but do not try to learn all of them.
You do not master microservice or you are alone? All previous projects were made in Monolithic pattern and many are still there and easy to improve (even if sometimes the technical debt is huge).
Choose a language/technology by asking you this two questions :
- Can I achieve this project with it?
- Can I manage this project by my own or using another developer and manage him?
If you reply 'Yes' to these 2 questions, GO. Stop asking questions and do your best.
Because it's the finality and the biggest point for me : do your best even if you think it's not good enough for some others programmers.
They have not your skills.
So if you are an old programmer like me, be sure of yourself, believe in your capacities and do your best on your projects.