Win a copy of Practice Tests for OCP Java 17 Certification Exam (1Z0-829) this week in the OCPJP forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Liutauras Vilda
Sheriffs:
  • Rob Spoor
  • Junilu Lacar
  • paul wheaton
Saloon Keepers:
  • Stephan van Hulst
  • Tim Moores
  • Tim Holloway
  • Carey Brown
  • Scott Selikoff
Bartenders:
  • Piet Souris
  • Jj Roberts
  • fred rosenberger

Novice starting career in Java, please advise course

 
Ranch Hand
Posts: 782
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi all.

This is a question on someone's behalf, who is young 20 years old and looking to start a career in Java and is motivated to become a full-stack developer (front-end and back-end) in web application development. He is completely a novice and has no background in programming.

He is looking to start from online resources, therefore, could you please advise/recommend a course for this young chap?

My suggested course is: https://www.coursera.org/specializations/java-programming
and the recommended books are: Head First Java, 2nd Edition by Kathy Sierra, and Effective Java 3rd Edition Joshua Bloch

Other opinions are highly appreciated.

Thanks!



 
Ranch Hand
Posts: 180
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Houssam El wrote:

Vikrama Sanjeeva wrote:Hi all.



Hello,
Java is one of the most powerful languages and is widely used in all fields i.e Desktop app, Web app, and Mobile app, furthermore, he would have the ability to read everything related to the Java language, the progress of learning never ends, finally, I would recommend books to learn from it, personally, I've studied Java from books although they cover many topics unlike videos, the author skims much information that will lead you to frustrating, and it might lead to leaving the path, here is a brief overview about what he waiting for him

The 2021 Programmer RoadMap



Finally, I wish him the best






 
Marshal
Posts: 75836
361
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Yes, HFJ is probably the best beginner's book around. Effective Java is very good, but parts of it are far beyond the beginner's level.
Why has your friend decided so definitely what he is going to do. What has he done before? At the beginner's stage he should remember that computer sciences is a very large field and he might be happier doing something completely different.
I don't know where H.E. found that diagram, but it looks totally incomprehensible to be.
 
Houssam El
Ranch Hand
Posts: 180
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Campbell Ritchie wrote:Yes, HFJ is probably the best beginner's book around. Effective Java is very good, but parts of it are far beyond the beginner's level.
Why has your friend decided so definitely what he is going to do. What has he done before? At the beginner's stage he should remember that computer sciences is a very large field and he might be happier doing something completely different.
I don't know where H.E. found that diagram, but it looks totally incomprehensible to be.



Hello, I found it on platforms that share many topics related to the Java language, therefore, (I think) that diagram it's a Bussoule for every Java developers, in addition, I recommend every Java developer visit those platforms that share useful topics, personally, I've intermingled studying computer science and java career, I've passed through tough moments despite the complexity that I confronted when I want to understand such things in both of them (I mean Java path and Computer Science) however, I'm a self-taught programmer
 
Campbell Ritchie
Marshal
Posts: 75836
361
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Houssam El wrote:. . . it's a Bussoule . . .

What's one of them when it's at home?

That diagram will still cause nothing but confusion to a beginner.
 
Houssam El
Ranch Hand
Posts: 180
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Campbell Ritchie wrote:

Houssam El wrote:. . . it's a Bussoule . . .

What's one of them when it's at home?

That diagram will still cause nothing but confusion to a beginner.



I've written above, it's a Bussoule  for every java developer, I merely mean for java developers, not beginners.
The diagram that I've posted above is given as a pre-resume for him to infer what waiting for him, specifically, I give him an insight into the career of the Java programmers
 
Campbell Ritchie
Marshal
Posts: 75836
361
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You would appear to have spelt it wrongly; it's boussole. French for compass.
 
Houssam El
Ranch Hand
Posts: 180
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Campbell Ritchie wrote:You would appear to have spelt it wrongly; it's boussole. French for compass.


Yeah, it's a French word, sorry
 
Bartender
Posts: 1737
63
Eclipse IDE Postgres Database C++ Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The boussole is awesome, but would likely just terrify Beginners if they had any idea what it meant.

I know enough to just find it scary!

Not all of the things on there are even specific to Java, but most of them are covered here on the Ranch.

It includes many things I know of and know a factoid or three about but have never seriously used.

The Java World is pretty big nowadays.
 
Houssam El
Ranch Hand
Posts: 180
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jesse Silverman wrote:The boussole is awesome, but would likely just terrify Beginners if they had any idea what it meant.

I know enough to just find it scary!

Not all of the things on there are even specific to Java, but most of them are covered here on the Ranch.

It includes many things I know of and know a factoid or three about but have never seriously used.

The Java World is pretty big nowadays.



I totally agreed, sometimes, you would have an intention to foresee the path where you'll make the first step in order to make a global perspective such as how long does take to become a java developer and get the first job, is it worthwhile?
many questions roll up in every beginner's mind as well as me the first time when I've appended this industry, and while I'm creating this comment I've many questions rolling up in my mind
 
Vikrama Sanjeeva
Ranch Hand
Posts: 782
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thank you everyone for sharing your opinions and suggestions:

Houssam El wrote:
Hello,
Java is one of the most powerful languages and is widely used in all fields i.e Desktop app, Web app, and Mobile app, furthermore, he would have the ability to read everything related to the Java language, the progress of learning never ends, finally, I would recommend books to learn from it, personally, I've studied Java from books although they cover many topics unlike videos, the author skims much information that will lead you to frustrating, and it might lead to leaving the path, here is a brief overview about what he waiting for him

The 2021 Programmer RoadMap

Finally, I wish him the best



This diagram gives a very good big picture of what is currently involved in Java & the related world. I think it will be well comprehended by a mid-level developer, but for the novice, who is just looking for the first step in Java programming, I think, it might create some confusion and fear as well.

Campbell Ritchie wrote:
Yes, HFJ is probably the best beginner's book around. Effective Java is very good, but parts of it are far beyond the beginner's level.



Agreed with your comments on HFJ and Effective Java. I think Effective Java can be used as a 2nd book reference, and I think going forward, once this novice will turn from a begginer to a mid-level java developer, he will be getting more stuff from Effective Java. Therefore, I think using Effective Java as a 2nd reference from the start of learning Java programming is not a bad approach.


Campbell Ritchie wrote:
Why has your friend decided so definitely what he is going to do. What has he done before? At the beginner's stage he should remember that computer sciences is a very large field and he might be happier doing something completely different.



This is an interesting question. As stated earlier, he is a complete novice. He doesn't have any background in programming. He is planning to learn Java as his first programming language. And then he wants to develop a web application. I think his approach is to get ready for the job market, and that's why he is planning to build skills in both front-end and back-end technologies. He is planning to be prepared in the next 2-2.5 years and then looks for relevant jobs.

After having a bit of research and discussion, I think, he should first learn fundamental programming and OO concepts using Java, and then learn Data Structures. This will (I think) build his solid foundation in programming. And then he can move to the front-end technologies HTML5, CSS, Javascript, React, etc, and databases RDBMS (SQL), Graph (Cypher)

Course 1: Java Programming Masterclass covering Java 11 & Java 17

Course 2: Data Structures and Algorithms: Deep Dive Using Java





 
Sheriff
Posts: 27224
87
Eclipse IDE Firefox Browser MySQL Database
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Campbell Ritchie wrote:That diagram will still cause nothing but confusion to a beginner.



The beginner will be almost entirely focused on the box "General Programming Skills". Such skills as they learn will likely apply to many other languages besides Java, and conversely much of the Java code which is written by non-beginners these days doesn't use the skills learned in that box.
 
Vikrama Sanjeeva
Ranch Hand
Posts: 782
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Paul Clapham wrote:

Campbell Ritchie wrote:


The beginner will be almost entirely focused on the box "General Programming Skills". Such skills as they learn will likely apply to many other languages besides Java, and conversely much of the Java code which is written by non-beginners these days doesn't use the skills learned in that box.



Paul, what topics do you think comes under  "General Programming Skills" ?
 
Houssam El
Ranch Hand
Posts: 180
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Vikrama Sanjeeva wrote:Thank you everyone for sharing your opinions and suggestions:

Houssam El wrote:
Hello,
Java is one of the most powerful languages and is widely used in all fields i.e Desktop app, Web app, and Mobile app, furthermore, he would have the ability to read everything related to the Java language, the progress of learning never ends, finally, I would recommend books to learn from it, personally, I've studied Java from books although they cover many topics unlike videos, the author skims much information that will lead you to frustrating, and it might lead to leaving the path, here is a brief overview about what he waiting for him

The 2021 Programmer RoadMap

Finally, I wish him the best



This diagram gives a very good big picture of what is currently involved in Java & the related world. I think it will be well comprehended by a mid-level developer, but for the novice, who is just looking for the first step in Java programming, I think, it might create some confusion and fear as well.

Campbell Ritchie wrote:
Yes, HFJ is probably the best beginner's book around. Effective Java is very good, but parts of it are far beyond the beginner's level.



Agreed with your comments on HFJ and Effective Java. I think Effective Java can be used as a 2nd book reference, and I think going forward, once this novice will turn from a begginer to a mid-level java developer, he will be getting more stuff from Effective Java. Therefore, I think using Effective Java as a 2nd reference from the start of learning Java programming is not a bad approach.


Campbell Ritchie wrote:
Why has your friend decided so definitely what he is going to do. What has he done before? At the beginner's stage he should remember that computer sciences is a very large field and he might be happier doing something completely different.



This is an interesting question. As stated earlier, he is a complete novice. He doesn't have any background in programming. He is planning to learn Java as his first programming language. And then he wants to develop a web application. I think his approach is to get ready for the job market, and that's why he is planning to build skills in both front-end and back-end technologies. He is planning to be prepared in the next 2-2.5 years and then looks for relevant jobs.

After having a bit of research and discussion, I think, he should first learn fundamental programming and OO concepts using Java, and then learn Data Structures. This will (I think) build his solid foundation in programming. And then he can move to the front-end technologies HTML5, CSS, Javascript, React, etc, and databases RDBMS (SQL), Graph (Cypher)

Course 1: Java Programming Masterclass covering Java 11 & Java 17

Course 2: Data Structures and Algorithms: Deep Dive Using Java








I would suggest to your friend starts taking computer science courses, here is a roadmap,
Computer Science Roadmap
It gives a concise explanation about the basis of the programming language


 
Paul Clapham
Sheriff
Posts: 27224
87
Eclipse IDE Firefox Browser MySQL Database
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Vikrama Sanjeeva wrote:Paul, what topics do you think comes under  "General Programming Skills" ?



Sequential processing, loops, arrays, basic arithmetic calculations, string processing.
 
Campbell Ritchie
Marshal
Posts: 75836
361
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Callling methods. Designing classes (in an OO language). Flow control, which includes selection as well as loops. In Java®, the simpler features of the streams API.
 
Sheriff
Posts: 17005
298
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Vikrama Sanjeeva wrote:he is a complete novice. He doesn't have any background in programming. He is planning to learn Java as his first programming language. And then he wants to develop a web application.

I would tell your friend there's a huge chasm between learning a first programming language and being able to develop a web application. That's almost like saying "My friend wants learn how to drive a car and then he wants to be a race car driver." There are many things he's going to need to learn to bridge that gap.

I think his approach is to get ready for the job market, and that's why he is planning to build skills in both front-end and back-end technologies. He is planning to be prepared in the next 2-2.5 years and then looks for relevant jobs.


The skills required for this job is a constantly moving target. Languages evolve, technologies change, there seems to be a never-ending parade of new frameworks that make it easier and faster to do the same things, techniques evolve.

One thing that has helped me over the years has been to always learn the principles behind techniques. Principles around cohesion and coupling, complexity and simplicity, decomposition, organization and modularization, and many others. If you understand principles, then it's easier to learn and apply practices and techniques and quickly adapt to the constantly landscape of technologies in our field.

Bottom line, yes, learn the techniques and technologies, but also study principles. Principles are at the foundation of learning. Any learning not grounded on a solid understanding of basic principles is flimsy and brittle at best, and downright dangerous at worst.
 
Vikrama Sanjeeva
Ranch Hand
Posts: 782
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Houssam El wrote:I would suggest to your friend starts taking computer science courses, here is a roadmap,
Computer Science Roadmap
It gives a concise explanation about the basis of the programming language



Thank you Houssam. That's a wonderful resource!!

Paul Clapham wrote:
Sequential processing, loops, arrays, basic arithmetic calculations, string processing.



Thank you Paul.

Campbell Ritchie wrote:
Callling methods. Designing classes (in an OO language). Flow control, which includes selection as well as loops. In Java®, the simpler features of the streams API.



Thank you Campbell.

Junilu Lacar wrote:
I would tell your friend there's a huge chasm between learning a first programming language and being able to develop a web application. That's almost like saying "My friend wants learn how to drive a car and then he wants to be a race car driver." There are many things he's going to need to learn to bridge that gap.



Developing a web application or working as a full-stack developer is his overall goal. I think, to achieve this goal, he has to learn his "first" programming language ? So, yes, he will have to go step-by-step to reach his goal.

One thing that has helped me over the years has been to always learn the principles behind techniques. Principles around cohesion and coupling, complexity and simplicity, decomposition, organization and modularization, and many others. If you understand principles, then it's easier to learn and apply practices and techniques and quickly adapt to the constantly landscape of technologies in our field.

Bottom line, yes, learn the techniques and technologies, but also study principles. Principles are at the foundation of learning. Any learning not grounded on a solid understanding of basic principles is flimsy and brittle at best, and downright dangerous at worst



Completely agreed! I've experienced the same over the years.


 
Houssam El
Ranch Hand
Posts: 180
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Welcome anytime, I think computer science courses will be paving the way that he will going in and might give an insight to him that will reshape the way to become what he wants, Good luck and tell him to work hard
reply
    Bookmark Topic Watch Topic
  • New Topic