0

How I switched to Java from C

 2 years ago
source link: https://rodiongork.tumblr.com/post/105079582713/switching-to-java
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

How I switched to Java from C

Also see my more “technical” walkthrough article: Long Road to Java.

I started my career in IT industry as electronics designer, spending about 80% of time programming in C for microcontrollers - chips driving the logic of our electronics. Next job was about programming for POS-terminals, also in C. After another year I became discontent for two reasons:

  • it was a job of struggling with other’s bugs and platform incompatibilities - no much creativity;
  • salary was not too bad, but I felt I can do better.

And I also wanted something more related to web… I decided to try my luck with Java - it is often used for web-based complex apps (like Google+ and many other Google backend services) - and I heard of good salaries in this field.

I did not know how hard it would be to switch - or what time it would take… Now I can tell you :)

When I started working for company with POS-terminals, I found I have some free time in evenings and while travelling to work and back home. At previous job it was harder since I tried to gain some extra money as personal tutor - and this devoured almost all free time. Now the problem was solved by salary increased about 1.6 times. :)

So I started practicing Java. How exactly? It is not a secret. I tried to wrote some small (and often abstract, useless) programs every day. Simple exercises or small utilities - everything which came into my mind.

I registered at TopCoder and later at CodeForces and tried solving programming contests in Java. This was not easy mainly because these sites are created specially for building Competitive Programming skills - not for simply practicing. (That is what later moved me to develop my own site CodeAbbey with simpler problems and exercises.)

As about books - I read nothing except API documentation and Java Language Specification. This appeared to be normal way when you already have some programming experience. I also registered at local Java Forum and started answering other beginner’s questions (as well or poor as I could).

After some 6-8 months I had sturdy experience with what is called JavaSE - java for standalone desktop application and its standard API. But meanwhile I also learned that usually it is not enough to get employed!

They all want JavaEE instead!

And the main trouble with JavaEE and Java-for-web is that it is a great heap of technologies, frameworks, libraries and tools. It exceed JavaSE by the volume of knowledge, probably, tenfolds or more!

Nevertheless I decided to try my chances. By some tutorials and examples I started kicking with Tomcat server and JSP / Servlets. The progress was quite slow. I often could not understand what am I doing or why at all…

I also started to send out my CV to some open positions and visit some interviews. For one of them I, luckily, was asked to complete some test project.

At first it seemed to me unbelievable I can do it. It required to “use Hibernate and JSF” and I have no idea of what they are. The project was intended to be done in few days (now I can write such in few hours, I believe) - but I explained my trouble and asked for more time. I was granted two weeks.

And I succeeded with this project. I learned basics of both Hibernate and JSF, I used Ant as a build tool (I did not know of Maven then). And my project was received positively.

However the director of this company told me: “Hey, there is a problem - you want to be employed as a normal developer, but with your skills you are more like a junior. We can invite junior, but we prefer students and young people here… So let us both think well about it and then call again!”

It was somewhat discouraging - I really was 29 already and yes, it was hard to think of junior’s salary (I was recently married)…

Nevertheless, when I had a chance with next company - I also solved another test project fairly well (and learned Java Mail) - and offered to hire me for comparatively small salary for probation period (of 3 months).

And I was hired. The work was to create new project which will automate reception of orders for placing ads. It was interesting, I created some funny library (kind of fuzzy regexp matcher) for parsing addresses, learned Spring, improved my knowledge of JSF and overall web technologies etc.

By the way, in a month I was also invited to the company where I was writing a project with JSF and Hibernate - but again it was too late.

Later, in a course of about 3 years I changed few more companies - every time learning new things, meeting interesting people from whom I can also learn something good - and of course, raising my salary.

Conclusion

  • it was a hard experience, one should never expect that sharp turn in career would be easy;
  • it was nevertheless achievable;
  • one should learn much and practice much in order to make such a professional switch;
  • sometimes it is worth to accept lower-paid job for a period if it will open for you the way in the direction you are aimed;
  • and you should never despair - the future will pay for your efforts!

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK