Being a programmer: what I wish I had known
A bit of history, but note this is in Singapore so it may not be as relatable
For most of my school/college I programmed in Basic/C/C++ and stuff that no longer exists in minds today.
2006: I has been coding in Python since the world was moving away from Perl. I liked it but no one hired any Python programmers. I wrote a lot of PHP in my company and later on when I switched to a job when our company ran out of funding to build the first smart-tv.
2007: Ruby on rails got a bit of traction. But I continued to only get work in PHP/Sysadmin
Started learning Django and loved it. Seemed like Python was catching on.
2011: Still PHP at work but I learned about AWS in 2009/2010. Python was catching on but Java ruled enterprise. I had the ability to choose and I chose Python for where PHP would just not be a great fit. Also I avoided the trap of “we-will-rewrite-everything” I had a good team of PHP coders so I let them work with what they liked for Web/API stuff.
2013: For three years, I used a lot of Python/Boto3 to build devops tools for AWS. I also used Python for AWS EMR/Hadoop and writing Data Science stuff . I had been on Stackoverflow Python Q&A for a few years now. We tried to hire a Data Science pro but he said “Python is for kids” He was a Java guy. I have no problems with Java but the attitude didn't seem right. It’s a different story today. I started building POCs in Python/Flask and backend stuff in Django. The mainstream stuff stayed PHP.
2014–2016: I was full time consulting. I barely had any coding let alone Python. I moved into Cybersecurity circles and learned a lot. Python was king there.
2016–2018: Short stint where everything was RoR but I had to learn and build stuff in Java for backend/ Apache Storm project. This made sense since you cant get into the weeds of Spark/Storm etc without knowing Java. Python wrappers can only go that far. I did not like Ruby or Rails. New management also decided to move to NodeJs.
2018–2020: I got to use Python exclusively to build Cybersecurity automation for clients and wrote a few POC plugins for our product. RPA was also catching on. This is the first time Python was a job requirement for me. But after being rusty I felt bad I had not kept up. I started to learn more about Python in Data Science and ML.
2020–2023: Was consulting again. Python started to disappear here and replaced by more Typescript/Javascript/Golang etc. Though I did not need to do it much I was able to make a few POC and bugfixes. I also noticed all of Blockchain is using TS/JS.
Now that I am running my own consulting/development and had to sit and think hard about what I was going to choose to build products.
I spoke to other devs in my network and coaches who had helped me hone Python topics like Flask (Nick Janetakis course) for example. I found that I can use Python for everything. If I had to touch Javascript for UI/UX I can use a lot of frameworks and tools to get the job done. I kept thinking to be a “full-stack” dev wouldn’t I need to learn React-Nodejs-mongodb:web-scale* stuff? Nick shared https://hotwired.dev/ which looks impressive.
I am working on a web3 project and found a Python library that is as pythonic as you can imagine. It saved me the trouble of learning some other language yet again.
What I learned is that you have to have patience with your language of choice that I am the best at. I can always do other languages for a short get-it-done shtick but stick to what I know. Be it Java/JS/Go whatever, heck even Perl is alive. There is no such thing as fastest / best language framework for the job. It is what is good for me and my team. In hindsight, I wish I had not wasted time in other languages and framework and spent that time in applying my language of choice.
I still need to do a bit of TS/JS here or there but I can always get a team member to help out.
* Web-scale is a reference to 2010s when MongoDB was touted as Web-scale by newbies. See this reddit