DEV Community

Discussion on: What's your Developer Story?

Collapse
 
silwing profile image
Silwing

I started dabbling in Frontpage as a pre-teen. Soon I got tired of the limitations and learned HTML and CSS from a free online course. A few years later I met a guy in an online game who could code PHP and he agreed to teach me. I kept with PHP for a few years.

I did a forum-style role playing game website with together with my then boyfriend. After a while I felt I had learned enough that everything needed a rewrite from scratch. My life got busier and by the time I was somewhere near finished I had mostly stopped role-playing online. So it ended up never actually being used. It was a good learning experience though.

Fast forward to high school where I had my first real programming class. The language was Java and back then IRC was the thing so my final project in class was an IRC client.
This was my first experience with reading standard specifications.

I also got my first online based job at this point. I did image conversions and some other graphics work for a webshop.

At this point I already knew I wanted to do a CS degree. And so I did.

At the first Friday bar at University I was approached by some guys who wanted to start their own company. They wanted a few coders to take care of the technical aspect and so I signed up. At first the idea was pretty wide. We wanted to help startups with accounting, marketing and their online presence. However a few guys dropped out some months in and we realised we couldn't do everything.
So we decided on websites to be our thing. I kept working with PHP, starting to learn frameworks and CMS like WordPress, Joomla and Magento.
I learned A LOT from this experience. Both professionally and personally. I learned that running my own company wasn't my thing.
Coming the end of my bachelor's degree I sold my share and decided to focus on my studies instead. The selling price was a fairly large amount for a student, but very little compared to the hours I had put in. The experience was worth it all though.

I quickly missed the little extra money working had provided me. And so at the start of my master's degree I found a job at the University IT department. I put PHP away and started learning .NET and learned about test automation with Selenium.

To neatly tie everything together my Master's thesis was on static analysis of PHP. Getting back to where it all started.

While finishing up my Master's thesis I got approached on LinkedIn by a major IT company. They wanted me to apply for their graduate program. I didn't get past the second round of interviews for that. But it got me thinking. There must be other graduate programs like that.

Fast forward a month and I came across an ad just barely before the application deadline for another graduate program with a major IT company. I applied and this time I got through all the tests and interviews. A month before my my Master's thesis defence I had a job waiting for me to start a few months later. Perfect timing.

And this is kind of where my story ends. Or begins. I have been working as a consultant for almost 3 years now, but this is just the beginning of my professional career.
In the past 3 years I have learned that experience is really key. Keep coding, be it part time jobs or open source projects or hobby projects. Getting experience is what moves you forward.
I also learned that working on a large project with a huge legacy code base means you spend a great amount of time reading and understanding code. Even just to change a tiny bit.
I learned that I love automation and that I sometimes need to remember the xkcd table detailing when automation is actually feasible.

So yeah.. If you got this far, thanks for reading my story. It ended up with a lot of details.

Collapse
 
monknomo profile image
Gunnar Gissel

I really enjoyed your story. Sounds like you've done some pretty cool things. How did you tackle static analysis of a language like PHP?

Collapse
 
silwing profile image
Silwing

I'm happy to hear you enjoyed my story.
We did some simple static analysis of simple types (boolean, integer, string) keeping track of what type was assigned to each variable during the code flow.

Our main focus was on arrays. Since in PHP arrays actually cover both traditional lists as well as maps. So based on the assigned keys and values in arrays we classified them as either of those subtypes.

Furthermore we created a plugin for IntelliJ which used our analysis to provide helpful tips for the user.