Software Development has been Roi's passion for many years. His interest ranges from the 3D structure of proteins to BPM, always eager to adopt new technologies. He blogs about the software world, specializing in Java, Agile and Software Architecture. You can find out more on his blog, website or LinkedIn page. Roi is a DZone MVB and is not an employee of DZone and has posted 4 posts at DZone. You can read more from them at their website. View Full User Profile

Get ready to be a developer with this checklist (6 things they didn't teach me)

07.18.2012
| 4794 views |
  • submit to reddit

Looking for your first position in the software world? Want to know more about the developer's life so you can improve your chances of getting hired and blending in better? In most cases you just finished your undergrad studies. The years you spent at college or the academy are valuable and helpful in many ways, but they don’t necessarily prepare you for a developer's life. Now, this article is not about whether undergrad studies are a necessary and sufficient condition for being a good programmer, nor about which university prepares you better, but it is about pointing out what might be overlooked during your study, what can be improved, and how one can have a head start when diving into this exciting world. We present you with 6 essential points that will help you in your upcoming venture:

  • Understanding the structure of a software company. Although this can vary from company to company, in most cases there will be a distinction between Developers, QA's/Testers, Support, Product and IT. Understanding this structure beforehand will help a candidate understand the job description he is interviewing for. A new employee will blend in better, adopt business processes faster and utilize all the companies' capabilities.
  • Development Methodologies. Whether it's Waterfall or Scrum, Agile or not, understanding the different approaches in Development Methodologies can give you a since of how life will be as a programmer. It could even help you choose a better-suited company.
  • Code Management tools and processes.  
    • You can finish your degree with knowing slim to none about code repository tools such as SVN, GIT, etc., which are used extensively. 
    • Continuous Build as a quality control process.
    • Integration Test as a phase in the development process. 
    • Issue tracking systems such as Trac and Jira used to handle development process as a whole.
  • Coding guidelines. No need to be alarmed if you haven't coded much during your study. However - they say it takes 100 repeats to learn how to bench-press correctly, but if you learn it the wrong way then it takes 10000 to correct yourself. Teach yourself how to write good code from the very start. A great book to get you started is Code Complete, Second Edition.
  • IDE usage.
    • IDE's (Integrated Design and Engineering Systems) are great - Don't you think? If you haven't mastered one during your studies - that's a shame. They really make life easier and supply easy access to new technologies.
    • However, on the downside - if you adopted one too fast - you might be baffled when someone asks you to run something from the command line or mentions the word classpath. So always be aware that there is a world outside your IDE.
  • Utilizing the power of open source. Let's say you have a great idea for a new project. Chances are that a large portion of your project's infrastructure is already available as open source. Moreover, choosing the right technology can save you an enormous amount of time. A new developer must understand that open source is a powerful tool that can be leveraged- there is no need to invent the wheel every time.


As a final note, most developers agree that the best tip for a starting developer is to join an open source code initiative. This can certainly introduce him or her to most of the concepts mentioned above, while giving this new developer a feel for the software world. Surely this can make the difference between that blossoming developer and other job-seeking ones who aren't as prepared.



Published at DZone with permission of Roi Gamliel, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Craig Doremus replied on Wed, 2012/07/18 - 1:16pm

You forgot two important skills a new developer should know: unit testing and coding for testability

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.