DevStory: Junior Full Stack Developer, Waleed Ahmad
How did you get into programming?
I had come across turbo C in school and I loved coding some very basic mathematical functions. Later during my bachelor’s in physics in 2012, a group of Computer Science students approached me, asking for my help in designing some basic web projects. Even though a Physics student, I was really good at photoshopping and had an eye for clean and attractive designs. So, I would hand them over some basic images, and they would convert that into code. Very soon I realized they were doing a horrible job and I needed to get my hands dirty. The project lasted 8 months and I ended up acquiring some basic HTML/CSS skills.
At what age did you start?
In 2012, I was 20.
Which programming language did you first get excited about?
Web developers will hate me for this, but PHP was what really blew my mind. I was a Physics student and had no idea how web development works. I along with the computer science students built the entire web app with basic HTML/CSS. I had no idea about backend web development. Few months later I decided to take an official web development course where I got introduced to PHP for the first time. I was so fascinated and at the same time annoyed because the project I spent 8 months on, could’ve been just a few weeks.
What exactly is your DevJob about?
Our team is developing and maintaining a Ruby and ReactJS based web platform that is used to buy and sell renewable energy from and to local vendors.
What do you particularly like about your DevJob?
I am working both as a developer and as an IT Helpdesk. This is quite unique because I understand both the problems of customers and the development team.
What kind of challenges do you face specifically in your DevJob?
I think I speak for all the developers out there when I say, the biggest challenge in any DevJob is the communication gap that exists between the Management, the IT team and the Customers. Most of the IT project management jobs out there don’t even have programming knowledge as a requirement. I’ll probably never get an answer to why this is the case but for sure this creates additional difficulties for the companies later on.
Secondly, every new developer needs time to understand and get used to the new tools and technologies being used in the current job. If not documented properly, it could be a nightmare picking up pieces of work left behind by past developers.
What are your preferred technologies?
For frontend I equally love React JS and Angular JS but at my current job I am using Ruby as a backend. I would’ve preferred Node JS a million times over. Haven’t used Python and Java yet, but I am planning to learn them in the near future.
Windows or Mac?
Being involved in both management and programming activities I prefer Mac, but in general Linux is recommended for developers. Windows is a no go.
Personal and Professional Growth
Which Dev Projects do you have outside of work?
I develop and manage two web platform outside my work. Samba Diary for news and events related to the Samba percussion and dance world. And SRM Talks for my current university group. I am very proud to have contributed this website to the team.
How do you keep yourself up to date for your job?
Programming and web development in particular requires constant learning. Where it’s always fun to learn something new, I realized it’s also very useful to re-study something we believe we have good command over. Every time I have taken an online course even if it’s about the tools I already know and use, it has packed me with new techniques that later prove beneficial for my workflow.
Where do you see yourself in the future?
This is a great but very complicated question in my case. I have a bachelor’s in physics, master’s in advanced Materials and now studying another Masters in Sustainable Resource Management. Programming was never my first choice and I still do not find the need to get a university degree in computer science or software engineering for it. Programming for me was like an extra-curricular activity and a hobby. I love it a lot and I have enjoyed all my jobs related to it but in the back of my head I still see it as some fun activity that happens to pay my bills as well. But when the opportunity comes, I will choose to be a Project Manager for an automotive firm instead. I am crazy in love with cars and I simply can’t let it go.
Tips for Beginners
How do you start programming and what should you start with?
I would rather answer, how should you NOT start programming. Do not start programming simply because the jobs are well paid. Do not start programming because you’ll get society’s respect for being this wizard that can make things happen simply by typing stuff.
Programming is a lot like PhD. It’s a long process and needs a lot of brain power and motivation. If you don’t enjoy it, you can’t make it to the end. I would recommend starting with a small toy project and see if it gives you the chills and you forget about rest of the world around you when writing a code. If not, sorry my friend but this isn’t the right job for you, and you should invest your time in something you actually love.
Finally, practice, practice and more practice. Once started, never stop. You’ll lose it quicker than you’ve gained. When learning from online platforms, don’t just stare at your screen. Try reproducing what you’ve learned and keep challenging yourself. You’ll learn a lot more when things aren’t working the way you want them to.
Which skills are required for your work?
For the techs, I use Ruby for backend and ReactJS for frontend. For soft skills, communication skills on users, business and developers end are required. German skills are not required but I have found them very useful to have.
In your opinion, what kind of education helps to be good at your DevJob?
As I mentioned, a university degree in computer science or software engineering doesn’t guarantee your skills in programming. They are very personal and that’s why each programmer works differently than the other. But do study online courses available on the internet. Always a good idea to hear from the professionals and to not repeat the mistakes our peers made.