This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes Java in General and the fly likes Must Know topics to be an expert programmer Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Must Know topics to be an expert programmer" Watch "Must Know topics to be an expert programmer" New topic
Author

Must Know topics to be an expert programmer

Stevie Shorey
Ranch Hand

Joined: Dec 10, 2012
Posts: 45

So i am currently at university and am looking to imporve my skills at programming. I have only started programming at school so IMO i am quite behind in comparison to the stereotypical geeks. What topics would you consider are fundamental beyond what they teach at school/university to be a "very good" programmer.

I accept that it is subjective, but I am eager to hear your feedback.
From my recall, I have learnt basics in Swing, JavaBeans, Java OOP, a bit of the following: Threads, Web services like Servlets, JSP, JSF etc, JDBC, RMI, SOAP/RESTful, Regular Expressions etc

I am looking for some topics to cover over the summer. Thanks,
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60806
    
  65

In my opinion, you need to become well versed with the core basics before branching out into more advanced topics.

Of what you listed, beans, OOP, threads, JDBC and regular expressions fall into that category.

Then, if you want to specialize, go ahead. For web apps, servlets and JSP are a must. So is HTML, CSS and JavaScript. (The era of server-side-only developers is crashing to a close.) After getting a good grounding in those concepts, and only then, consider a framework. SpringMVC or Play, for example. Frameworks like Struts are getting long in the tooth. JSF is a niche whose influence I see on the wane, and I'd only tackle it if you see a lot of jobs demanding it in your area.

Same with RMI and SOAP: creaking, ancient, niche APIs that are holding on only because of legacy apps (and legacy developers who don't like to learn new things).

Desktop Java is also a niche. So go there only if it's what genuinely interests you, or has job prospects in your area. Swing and JavaFX in that case.

RESTful APIs if web services are where you want to go. But that's after having a solid grounding in core and web apps.

None of it is bad to learn -- knowledge is power. What I've outlined above is my take on where to focus on what you will likely find most useful.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Stevie Shorey
Ranch Hand

Joined: Dec 10, 2012
Posts: 45

Bear Bibeault wrote:In my opinion, you need to become well versed with the core basics before branching out into more advanced topics.

Of what you listed, beans, OOP, threads, JDBC and regular expressions fall into that category.

Then, if you want to specialize, go ahead. For web apps, servlets and JSP are a must. So is HTML, CSS and JavaScript. (The era of server-side-only developers is crashing to a close.) After getting a good grounding in those concepts, and only then, consider a framework. SpringMVC or Play, for example. Frameworks like Struts are getting long in the tooth. JSF is a niche whose influence I see on the wane, and I'd only tackle it if you see a lot of jobs demanding it in your area.

Same with RMI and SOAP: creaking, ancient, niche APIs that are holding on only because of legacy apps (and legacy developers who don't like to learn new things).

Desktop Java is also a niche. So go there only if it's what genuinely interests you, or has job prospects in your area. Swing and JavaFX in that case.

RESTful APIs if web services are where you want to go. But that's after having a solid grounding in core and web apps.

None of it is bad to learn -- knowledge is power. What I've outlined above is my take on where to focus on what you will likely find most useful.


Having looked at Job sites recently, i agree with your conclusions. There is a lot of demand for developers skilled equally in desktop + web technologies.
All or most of these: HTML, CSS, Javascript, AJAX, PHP, SQL are required in a significant numbers of jobs i looked.
Mind, these are well paying jobs too.
Mansukhdeep Thind
Ranch Hand

Joined: Jul 27, 2010
Posts: 1157

Stevie Shorey wrote:So i am currently at university and am looking to imporve my skills at programming. I have only started programming at school so IMO i am quite behind in comparison to the stereotypical geeks. What topics would you consider are fundamental beyond what they teach at school/university to be a "very good" programmer.

I accept that it is subjective, but I am eager to hear your feedback.
From my recall, I have learnt basics in Swing, JavaBeans, Java OOP, a bit of the following: Threads, Web services like Servlets, JSP, JSF etc, JDBC, RMI, SOAP/RESTful, Regular Expressions etc

I am looking for some topics to cover over the summer. Thanks,


I had such ambitious thinking when I had under 10 posts. Fortunately, a wiser man than me who goes by the name of Winston Gutkowski told me to read this first before anything. The only way to success is perseverance. What makes a good programmer, sportsman, scientist, artist is his sheer love for that thing. He loves it so much that he is willing to do it for the rest of his life without getting bored or saturated. All people who are brilliant at something are no doubt more talented than the average guy out there. But talent is going to open only the first, second or maybe the third door for you. Beyond that, it is sheer hard work and years of dedication that will take you there, nothing else.


As for your query, I feel that you should first start with the basics. Understand the following concepts of Java clearly:

Declarations and Access Control

Object Orientation

Assignments

Operators

Flow Control, Exceptions, and Assertions

Strings, I/O, Formatting, and Parsing

Generics and Collections

Inner Classes

Threads

Grab a copy of Head First Java. Devote 1-2 hours daily to studying some concepts, digest them, write down the doubts on paper and come back to the ranch. Always there to guide.


What makes a good programmer?
Programming and good coding are two very different things. A good programmer is someone who can think of the best possible solution to an issue, scheme out a road map for it and solve it in the most efficient manner. A coder's job is to merely implement that logic using a language like Java / C++ / DotNet etc. That is easier. The main idea is to develop problem solving skills side by side.


~ Mansukh
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60806
    
  65

Mansukhdeep Thind wrote:
What makes a good programmer?[/b] Programming and good coding are two very different things. 0A good programmer is someone who can think of the best possible solution to an issue, scheme out a road map for it and solve it in the most efficient manner. A coder's job is to merely implement that logic using a language like Java / C++ / DotNet etc. That is easier.

I'd say that's just a matter of semantics. There are no agreed-upon definitions of those terms and different people will interpret them differently.

Take care not to state your interpretations and opinions as fact.
Stevie Shorey
Ranch Hand

Joined: Dec 10, 2012
Posts: 45

Mansukhdeep Thind wrote:
Stevie Shorey wrote:So i am currently at university and am looking to imporve my skills at programming. I have only started programming at school so IMO i am quite behind in comparison to the stereotypical geeks. What topics would you consider are fundamental beyond what they teach at school/university to be a "very good" programmer.

I accept that it is subjective, but I am eager to hear your feedback.
From my recall, I have learnt basics in Swing, JavaBeans, Java OOP, a bit of the following: Threads, Web services like Servlets, JSP, JSF etc, JDBC, RMI, SOAP/RESTful, Regular Expressions etc

I am looking for some topics to cover over the summer. Thanks,


I had such ambitious thinking when I had under 10 posts. Fortunately, a wiser man than me who goes by the name of Winston Gutkowski told me to read this first before anything. The only way to success is perseverance.



A thought-provoking link. I understand the concept of perseverance (i have read the book by Malcolm Gladwell ) just wanted to know what to persevere on !

The list of topics suggested by you and Bear is an excellent starting pojnt that i can refer to as i go!
Mansukhdeep Thind
Ranch Hand

Joined: Jul 27, 2010
Posts: 1157

Yes, you are one of the very few who want to answer the "What should I do?" part of their life first than to just go ahead and start doing whatever comes their way. A mature approach. Take your time to choose whatever you want to persevere on. Make it something that 10-15 years from now you don't get bored or saturated of doing it. Head first java is a good book to start with. Also, this is a website I very often visit. Try out the puzzles and the problems, one or two everyday. They really stimulate your grey matter.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Must Know topics to be an expert programmer
 
Similar Threads
SCJP for new graduate
Creating a cartesian product with to lists
need advice for job search in Canada and U.S.A.
Graduated without a computer science degree. What do I do now?
Newbie to programming... Reading Head First Java Second Edition