If you’re trying to figure out whether you want to embark on a certain career path, or if you’re trying to find out how one breaks into that same career field and then progresses through it, I think it’s helpful to listen to the stories of people who have walked that path before.
That’s why, a few weeks ago I emailed some blogging developers that I’d been talking to in my current research process, and I asked them if they would be willing to share a short and sweet version of their personal career journeys. I was excited when three of them generously offered to write these from scratch for me.
After reading them, I think you’ll agree that they would be effective in helping guide and inspire any person who’s looking at the software engineering field for their career.
Arian Celina, Software Architect
I started to feel an interest for programming in my early teenage years, but at the beginning, it looked a bit cryptic to me. When I was 16, I decided to give it a try. At that time I tried to learn C/C++, but apparently that didn’t come easily to me and I didn’t grasp the essence of it. After two years I decided to give it a second try, and started my bachelor studies in computer science and continued the studies to a master’s degree as well. Ever since, programming has been the love of my life.
During the last year of my bachelor studies, just before graduating, I got my first job as a programmer in an international bank, and my position has evolved from Programmer to Software Architect - my position today. I continuously upgrade my skills with industry certifications and stay up to date by teaching myself about emerging technologies.
I think the biggest factor that helped me reach the position I am in today is teaching. I have taught programming for four years now. Teaching has helped me in two ways: 1) It pushes me to learn more in order to teach students better 2) I believe in the philosophy that sharing is how we learn more ourselves.
The second biggest factor that helped me a lot is experience. Programming is all about writing code and you need extensive experience there. Working as a freelancer helped me a lot in this regard. Freelancing enabled me to get projects with different focuses, a wide variety of requirements, and different implementations. Freelance projects also serve to test yourself on managing software projects, which is an important skill for software architects.
Basically, to evolve as a software developer, you have to teach yourself how to learn and how to challenge yourself continuously with different approaches to software development. I see software development as a form of art, and you have to write and read a lot of code before you start to generate your own insights.
Robert MacLean, Senior Developer
When I was 14 I got my first computer. It was a second hand 286, and all I wanted to do was play games on it. Unfortunately, I didn’t have many games, which meant that in boredom I started to look at all the commands on the machine (it was DOS 5, and came with a great manual). I learned a lot about how computers work and how to break them. I found GW-Basic on it and it had a sample game, which I played and then started to edit. I didn’t think of myself as a programmer yet, more of a fiddler. I mentioned this to an older friend who introduced me to Pascal and from there I started to write programs.
A lot of my initial education was self taught. Being pre-internet and living in South Africa meant I had to take a lot of trips to the library to get anything they had. I did computer science in high school, but didn’t learn much new there. I did a short course on Delphi after high school which was very interesting and taught me a lot about databases. From there it was really all on the job learning. I found the best resources are blogs and websites (I still read almost 100 a day, including DZone) which give you a lot of informationand build new skills.
My first job was in support for a web hosting company, so if your server or website went down - you would phone me and I would reboot the box or something similar. We installed a GSM modem in the server room so we could get a SMS notification on the weekends if servers failed. My boss at the time asked me to develop software that would allow clients to send SMS’s through it too. From there, I started doing both support and development for the hosting company.
Eventually I met some people who encouraged me to build my own startup. When things first began, I was basically doing all of the jobs (software dev, support, networks, etc…). That was a great experience where I learned so much about tech businesses. However, the startup failed and I found myself working as a junior developer for a Microsoft Partner doing CRM work, something I’d never heard of before. I worked hard there and eventually was put in charge of the development team. Since the start of my work at Microsoft, I have done some other jobs, all of which emerged from networking and having those people ask me to work with them - which has been very humbling and exciting. Today I am a senior developer at Microsoft working on making sure Africa has amazing apps and that the talent pool of developers in Africa is increased.
David Dossot, Director of Architecture
My journey is littered with paper. Let me explain.
My first computer was a paper one, the so-called Ordinapoche, which was the French version of the CARDIAC. This got me thinking about the possibilities of computing. My first real program was also paper driven: a friend of mine was lucky enough to have a TRS-80 so I would write programs on paper during class and he would bring me the printouts back the next day!
I’ve quickly been able to get my hands on a ZX-81, then own a pair of ZX Spectrums (these computers cost a fortune and would fry easily). In February 1984, I got my first program published: again it was on paper. At that time, people were buying magazines containing printed programs that they would spend hours typing out just to play the programs.
At university, it was all about IBM terminals and mainframe. And mountains of printed manuals. More paper! Then came the abysmal horrors of Windows for Workgroup, and all its technically challenged successors. I recovered from this long tunnel of pain with writing open source, blog posts (it used to be a thing), and articles for magazines (the ones that used to be printed on, guess what, paper). In my architectural journey, I went through mainframe, client/server, n-tier, and finally distributed systems. This led to more writing, and this time it was full-fledged books for which even more paper was needed!
Programming involves a lot of typing: to code the software, to write about it, to answer questions. And as you can see, it can also involve a lot of paper. But more importantly, when it’s fueled by a passion that started when I was a kid, it can be years and years of fun.