It's a journey to even begin to learn what it takes to become a real professional software developer.
From the first day when I get to use the computer, starting to get fascinated with the things to do and another world opened to me, I think that it must be cool to do this for life.u
Same as anything you do, when you think you are good, you just want to get better.
During the high school days, I'm basically just learning random things about programming, some tips and cool snippets to use in web pages using CGI scripts.
I will even learn some interesting hacks around lots of problems and things, and I thought I'm getting good at computers some how.
I remember there was a thread started to tell lots of developers to recall how they got started into developing.
For me, I started when I was around 10 years old, I was fascinated with my cousin how he can program video games on his DOS machine, and he shows me the various stuff he has done and he can answer every computer question I have. I guess that inspiration to become like him urged me to pick up that QBasic book from the book store.
Although I didn't get far with it, just simple programs that display text and even play a song using the intergrated board MIDI player, it does show me a way to be even more creative with computers rather than just executing exe files.
After I come to America and being a junior at High school, I was part of the computer club in school. That's when I started to learn what does people mean when they talk about "geeks", "nerds".
It seems like a dis-associating and anti-social people that take pride in their knowledge of knowing how to solve or hack around many things in computer. Other words, the cooler program or hacks you know, you're something big.
That isn't what I'm looking for.
When it comes to University, that's when a new world opens to me when I seriously starting to learn more about programming, OOP, classes and methods and so forth. However, the image of being a great programmer is what I see in computer science classes, that seems to be someone that can solve really technical problems, react so quickly to puzzles and can give out solutions like in seconds. I'm amazed how they can be so smart. To me that's like professionalism that time.
I wasn't the person that can produce the coolest demo in the programming class, or the person that everyone knows is the biggest geek. So I wanted to be that kind of person when I was just freshmen or sophomore in college.
Now after becoming a SDE at Microsoft, that concept of being a professional developer has become to change. Actually, it already started to change when I was intern at Washington Mutual.
There are people that seems to know all the answers, know all the solutions, smart and good at programming, but are so hard to work with. They cannot stand what other people are doing,
I become to start learning that to be a professional software developer doesn't merely mean that you are just technical superb.
There are other developers that think they've known it all, pretty good at coming up with solutions, know how to do the new tricks and whistles in programming, but do not understand the foundation and underlying reason what development is for.
I started to ask myself, and even mf y manager started me on this journey of thinking that, what it is to become not just a software developer, but a real professional developer?
In other words, I believe that merely being able to join a corporation or be part of company automatically transforms you into a professional develoepr as it is your profession.
I believe you have to understand what it takes, what is it like to become one, and to withstand the test and time to be one.
It is same as any profession in this world, but I believe there are many young kids that want to do programming as their job doesn't understand that a developer is way more than just writing code.
As I start to jog down some thoughts in the next few posts (I'm not planning any posts now, just some random ideas I think I can spit later),
What do you think is a professional software developer should be like?