6 Months ago I started my adventure of working as a .NET developer. Before that, all my experience was based on what I coded for college and in my spare time. I still remember the first day of my job as if it was yesterday I was tired of coding for class assignments or research. In other words, all I wanted was to feel what it’s like to be in the skin of a real programmer having to deal with tight deadlines, demanding clients, finding solutions for real problems corporations faced and so on.
Because of this, on my first day as a developer, I was excited as a child, who just walked into a candy store. I just couldn’t wait to start coding for the real world. Little did I knew of the challenges I would face in the corporate world in the next weeks to come.
Looking back now, there are several things that I wish someone who had already gone through the ins and out of being a developer would’ve told me. So, I wouldn’t have to learn the hard way. Having said that, below I will be sharing some of the situations you can expect when you enter the job market as a developer, just like I did 6 months ago.
1. Expect The Worst Hope For The Best
Most of the time Murphy’s law will be knocking at your door. If there is something that could go wrong during development cycle chances are that it will go wrong. Always have a backup up plan and prepare for things to not go as expected. A solution that was working may all of a sudden give you problems maybe it’s because of a silly semicolon you accidentally removed or maybe its something more complex, who knows. Whatever the reasons you need to stay calm in case you want to fix it before your deadline.
It’s not rocket science that during development a code that was working all of a sudden decides not to work. Knowing how to keep your cool and find a workaround when these issues do occur is what will make you stand out from the crowd of developers, who freak out when things don’t go as planned.
2. Nobody Cares If You Can’t Deliver The Software In Time
The only way a client may forgive you for missing a deadline is delivering a workable product, or worse, exceed his expectations with what you deliver. But still, learn to break the habit of leaving things for the last minute as it may lead you to not comply with your deadlines. In the eyes of your client, the more you take to deliver your product after the time is up, the more likely that he will lose respect for you and feel the need to be compensated for late delivery.
3. Don’t Aim For Perfect, Aim For Functional
In school, we are taught programming habits that work quite-well in an academic environment but tend to not carry-over very well to the corporate world. When I first started coding for a startup I used to worry so much about making my code as perfect and as clean as possible. After all, that’s what my professors told me it was the right thing to do. While it’s quite important to have a well-kept clean code and avoid functions or variables that take more memory and processing power than necessary. So other coders you are working with can also understand your code. Overthinking about these things may make you miss your deadline, or worse, deliver an incomplete piece of software.
Over-engineering every tidy bit of your code may end up being unproductive. As it may be consuming precious amounts of your time and energy that you could be using to make another feature or fixing a bug in your software. College professors usually teach us to over-engineer. They did that because their job was making sure that when you would enter the job market you would not become a lazy programmer that wrote gibberish that nobody could understand. But now, those days are over, you are coding for real clients the apprentice time is over and the clock is ticking. Its time for you to step up your game and deliver working stable software.
Clients won’t judge your software based on how pretty your code looks, but how functional and stable it is, truth is unless you are selling software to another programmer chances are they won’t ever read one line of your code.
Delivering a program with fewer features, but functional is better than delivering a buggy unstable piece of software with many features that don’t even work correctly. When you get into the corporate world you have to keep in mind that coding for a client or a big corporation is quite different from coding software for a research you are doing for your university or a class assignment. To sum it up priorities are far different in the corporate world from what you were used to in your college days.
4. Don’t Try To Keep Up With The Coding Joneses, Everyone Has Their Own Coding Style
While it’s good to always exchange programming techniques with an acquaintance of yours, so both parties can learn from each other, don’t forget to always be yourself. In other words, if the way you are coding works for you and is not causing you to make too many mistakes or stay behind deadlines keep coding that way. Trying to replicate your colleagues’ coding style will only make you a bad programmer. In short, it is like trying to fake that you are somebody else. Don’t forget that just like what makes you unique is your distinct personality what makes you a unique programmer is your own coding style.
5. Clients Don’t Care If The Program Is Not Working Because Of X Or Y
For people who don’t code explanations for why the software is not working will usually sound like sorry excuses for a mismanaged project. Unfortunately, they are not coders they will never understand all the grinding and hustling you been through to get the software that you were working, on that level. For them, if it’s not working it’s a bad product. In other words, all those nights you stayed up working on it will have been for nothing. As a developer, you have one main task, do your best to deliver a working project by the end of the deadline or earlier.
Sometimes it might feel like you are carrying the weight of the world on your shoulders. But that’s just how it goes. It’s part of the job. If you need to extend the deadline, then try to explain to him the reasons why you won’t be able to deliver what you promised in a way that’s understandable for someone who is not a developer.
Coping with pressure and tight deadlines is as much part of the job as knowing how to code. In short, being a great programmer means little nowadays if you don’t know how to deal with feeling overwhelmed and the pressure of delivering your code in time you won’t get very far in this career. Delivering a flawed product in time is worse than missing your deadline, but delivering a functional product. They might excuse for being late as long as you deliver a flawless software, that meets their expectations.
6. Don’t Be Afraid Of Making Mistakes
When writers find themselves without their creative mojo they call it writer’s block. This can be best described as when all of a sudden a renowned writer finds himself unable to write anything at all let alone keep writing quality pieces. Famous writers and composers such as F.Scott Fitzgerald, Sergei Rachmaninoff, Joseph Mitchell and many more suffered from it every now and then. I believe that this phenomenon is not exclusive to writers. Programmers have their own version of this phenomenon as well. Its called coder’s block.
Yes, that’s right. I guess when we, developers, find ourselves not being able to write quality functional software or code anything at all we are having a case of coder’s block. There may be several causes for this to be happening with you. You may be afraid of making mistakes, you might be tired or stressed you may be insecure about the way you code and so on.
Overcoming this stagnation is all about not being afraid of making mistakes and know when to stop and take a break from long hours of coding. As stated before being a perfectionist or not resting might be taking a toll on your health and productivity.