What do they learn in school ?
In the past year we hired two junior java developers and I am starting to wonder what they really learn in school. Don’t get me wrong, we are more than happy with our new collegues but since I am starting to get to know them very well by now I am entitled to raise this issue.
Note: we don’t hire college graduates (they are too expensive) but developers who took 3 years of IT courses (called graduate school here in Belgium).
When they start at TELIO, we usually assign them with a simple and well defined project just mentionning the technologies they have to use. For the rest they are free to use and do things the way they want to.
This allows us to evaluate their strong and weak points and see how to do things and specifically how they react to a technical stack they don’t know.
Well, it’s a great experience but sometimes a sad one …
Here are some thing they don’t know :
Theory
- They have a very vague view of network protocols that basically run the world today (TCP/IP, DNS, HTTP, SMT, etc ..)
- They never heard of the word “socket” except at the store by two size 42 ..
- They don’t clearly understand what a server / client model is
- They have absolutely no understanding on how HTTP works and more generally what happens “behind the scenes” when you click on a link in a web page.
Practice
- They have never used (or sometimes even heard) of Ant
- They have never used (or sometimes even heard) of a version control system.
- They rename classes by hand and don’t use “refactoring” that is supported by their favorite IDE.
- If you ask them to work outside their favorite IDE they are completely lost.
- They rarely have the reflex to “google” for something, they prefer trial and error ..
- Debugging = System.out .. they have never used a debugger (even inside the IDE) so don’t even think about attaching to a remote JVM.
Now based on that my question is : What the h… do they learn in school during these 3 years.
Here is a list of things they know :
- Run tomcat inside the IDE – but have no clue that it can run as a standalone application. Sometimes they even think it’s part of NetBeans, Eclipse etc ..
- The “theory” of object orientation, forget about practice.
- They “know” hibernate .. at least they think they do .. I personnaly don’t understand how you could honestly say you “understand” hibernate when you don’t know what ORM stands for or have a basic understanding of databases.
- They “know” struts 2 (or 1) and they love using the word MVC and always try to figure out if what they are coding fits the MVC definition (or what they remember of it)
The list goes on and on. Now they are not to blame (their teachers are) but this does not reassure me on the quality of the IT resources coming out of our education system.
In about 2 weeks however we try to get them going.
The most important thing for them is to :
- Admit (even if it’s sometimes hard) that they did not learn anything in school
- Realize that they are capable of learning anything they want if they trade “using” against “understanding” ..
Computer science is about fundamentals and basics. If you get the basics you can grasp almost anything. And the basics are simple, so computer science is simple.
But all these juniors seem afraid of looking under the hood, not because they were told not to, just because they were told they would not be capable of understanding what they would find.
That’s a shame.


