I am currently acquiring my associates degree in software engineering. I have been told in order to be successful in a computer science field you have to specialized in something. After researching several areas I have decided I want to specialize in Java Database Connectivity. It earns a decent income and seems interesting.
I would like to know what the field is like. What the job, bosses/managers, pay, etc…
I just want to know as much as I can first hand from the people that currently work in the field. What are some tips you would give a new-comer in college and what do you wish you had known before getting into the industry?
6
As a software engineer/computer scientist your success doesn’t depend on any specialization but rather your ability to solve problems, understand users and most importantly your ability to learn and apply new information.
JDBC is a technology used in the Java programming language to interact with databases. It’s just one of the myriad of Java technologies you might encounter if you chose to learn Java. However it’s not a good candidate for specialization as it’s only one tiny part of the puzzle that is a software application.
Income, Stress, Bosses, Worklife, etc… will all depend on the companies you choose to work for. Some types of software development companies are known to have higher burn-out rates and worse working conditions on average (such as games). But your actual situation will vary greatly from company to company as with any other field.
What’s most important is just to be interested in software. Write a pet-project or learn a language on your own initiative. You need to constantly excercise your learning muscles and learn how to write programs that help you solve a problem you have right now. As you learn more about programming it’ll become easier to grasp difficult concepts. You don’t need to study 24/7 but it’s important that you enjoy the process of learning new concepts.
Certainly every server side Java developer should know JDBC, but it isn’t a topic to specialize on, for three reasons:
- The scope is very limited. You can grasp the concept in a day, and really grok the details in two or three weeks. It’s just a thin layer over SQL, not enough fancy stuff to become a guru
- Modern architectures are build on top of JDBC. You don’t need to know much JDBC if you use JPA, Hibernate or other ORM frameworks.
- In times of “big data” the NoSQL concept becomes more and more important, and obviously there is no JDBC for DBs like MongoDB. Some frameworks like Spring Data try to unify SQL and NoSQL sources.