Over a million developers have joined DZone.

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

DZone's Guide to

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

· Java Zone ·
Free Resource

Get the Edge with a Professional Java IDE. 30-day free trial.

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.

Get the Java IDE that understands code & makes developing enjoyable. Level up your code with IntelliJ IDEA. Download the free trial.


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}