Forgot your password?
typodupeerror
Java Education Programming

After Learning Java Syntax, What Next? 293

Posted by timothy
from the nice-hot-bath dept.
Niris writes "I'm currently taking a course called Advanced Java Programming, which is using the text book Absolute Java, 4th edition, by Walter Savitch. As I work at night as a security guard in the middle of nowhere, I've had enough time to read through the entire course part of the book, finish all eleven chapter quizzes, and do all of the assignments within a month, so all that's left is a group assignment that won't be ready until late April. I'm trying to figure out what else to read that's Java related aside from the usual 'This is how to create a tree. This is recursion. This is how to implement an interface and make an anonymous object,' and wanted to see what Slashdotters have to suggest. So far I'm looking at reading Beginning Algorithms, by Simon Harris and James Ross."
This discussion has been archived. No new comments can be posted.

After Learning Java Syntax, What Next?

Comments Filter:
  • by SerpentMage (13390) <ChristianHGross.yahoo@ca> on Sunday February 21, 2010 @09:35AM (#31217942)

    How about writing code????

    Learning the theory is good, but writing code is very important..

  • What's next? (Score:5, Insightful)

    by GrahamCox (741991) on Sunday February 21, 2010 @09:36AM (#31217944) Homepage
    Program something for real. Be goal-oriented. No amount of working through exercises teaches you programming for real.
  • Best way to learn: (Score:5, Insightful)

    by DavidR1991 (1047748) on Sunday February 21, 2010 @09:39AM (#31217964) Homepage

    Pick something simple to build (i.e an application) and build it. You'll learn huge amounts just from filling the gaps in your knowledge in order to achieve what you want.

  • Other Things... (Score:5, Insightful)

    by Mongoose Disciple (722373) on Sunday February 21, 2010 @10:10AM (#31218178)

    My assumption is that at some point you'd like to try to make a living as a Java developer. If that's not the case, please disregard this post.

    How much do you know about databases? If the answer is nothing, you'll want to get up to speed on at least basic SQL. Pretty much every Java project you ever work on in the business world will make use of a database. 80-90% of the syntax is pretty standard from database to database, although nearly every professional Java project I've worked on used Oracle.

    While not every Java project is a web project, it wouldn't hurt to have a basic understanding of HTML, CSS, and at least one web server commonly used to host JSP such as Tomcat or WebSphere. Even if these pieces don't end up being your job, the basics are helpful.

    There are all kinds of popular Java frameworks meant to solve different problems. Try to get a basic sense of what's out there and what each of the leading options is good for, e.g. that something like Hibernate is used for data persistence and something like Java Server Faces is more of a presentation technology. (Or whatever's popular now; I haven't worked a Java project in a few years and I'm starting to get out of date.)

    Probably you also should start to learn one or more of the common Java IDEs. Eclipse is near ubiquitous, but you may prefer one of the other options.

    Good luck!

  • by twistedsymphony (956982) on Sunday February 21, 2010 @10:14AM (#31218196) Homepage

    How about writing code???? Learning the theory is good, but writing code is very important..

    I agree with this... pick a project, dream up some application and build it. If you have something in mind that's great but if not just do something simple like maybe building a tick-tack-toe or checkers game, or building a database application for your DVD collection or something along those lines. It doesn't have to be an app that you'll use but getting your feet wet with a real project is invaluable to the learning experience.

  • by Anonymous Coward on Sunday February 21, 2010 @10:14AM (#31218198)

    One thing that us programmers often fail to suggest to newbies is...

    Learn project management skills!!!

    You may be able to write some of the most elegant, stable, and fast running code on the planet... But if you have a problem doing the following

    - Making a schedule
    - Estimating time to do tasks

    Your personal programming projects will rot it "never-gonna-finish" hell. Take it from first hand experience. Oh yeah, while you're working on your project management skills, now would be a good time to solidify your code commenting skills. You (and everyone around you) will love you for it.

  • anti-patterns (Score:2, Insightful)

    by Nightshade (37114) on Sunday February 21, 2010 @10:18AM (#31218212)

    The best stuff to read after you think you've got the basics are anti-patterns which show you what not to do. A lot of that stuff can be quite eye opening to read. One of the best books on that topic is Effective Java by Joshua Bloch. Also, search the web for sites like this one: http://www.odi.ch/prog/design/newbies.php [www.odi.ch]

    Also, not a book per se, but if you do write some code it's possible to learn more by analyzing the code with tools like findbugs [sourceforge.net] which will show you a list of things wrong with your code. Even professional programmers can learn something from these kinds of tools.

  • by chthonicdaemon (670385) on Sunday February 21, 2010 @10:26AM (#31218242) Homepage Journal
    Another layer of abstraction is easy to dismiss as encouraging sloppy thinking and "magic", but C encourages this in the same way with anything allocated on the stack. Dynamically typed languages get some heat for not forcing users to decide on the type of their variables. By writing the same program in many different languages, you get a much better feel for what is part of the problem itself and what is part of the stuff you need to do for the computer. From hand-crafted machine binaries (preferably avoiding any operating system "magic") to a quick shell script, it's all a question of where your problem space is. I'm all for learning multiple languages, but abstraction is really a good thing, so I would add "implement the exact same thing in Python/Ruby/Lisp" to that as well.
  • by ammorais (1585589) on Sunday February 21, 2010 @10:42AM (#31218364)

    I agree with you about the shitty code out there. I simply can't agree with anything else you've wrote.
    Why do you assume that only people with Computer Science background should be writing code? Your post also just assume that because he is a security guard, that he just should write code that would never see the light of the day. That's plain stupid you know.
    The submitter already told me two thing with his article. First is that he truly loves programming, and second is that he is able to self study any language without the need of a course where he could ask many questions about issues he didn't understood.
    That's more than I find in many people with a computer related education. Your computer science background can teatch you important concepts, and the right way to do things. It can be a valuable and important background. It can't teach you how to be creative with your algorithms, and how to be smart enough to write complex programs.

  • by DavidR1991 (1047748) on Sunday February 21, 2010 @10:45AM (#31218390) Homepage

    Although I get what you're saying, I think it's a bit harsh too. Everyone starts somewhere. Everyone writes crap code when they start. The key thing is, the more you do it, the more you learn, the better you get.

    I don't know whether there are any other self-taught coders such as myself who can back this up, but personally I've found that half my learning was done before I even reached university - learning that code isn't about cool routines. It's an operation of keeping things simple, making it so you need to think the smallest amount to understand what's happening. That design is paramount. CS has so far been (a still enlightening) mathematical cherry - but on a cake of practical experience I had prior to university.

    So I suppose what I'm saying is that, given enough time and experience I would not say CS is strictly necessary. And at the same time, in some cases, CS as a course actually does a whole lot less than what people think it does. You need to expand beyond the academic experience to be useful, even if you do have CS

  • Re:Effective Java (Score:2, Insightful)

    by pkuyken (801014) on Sunday February 21, 2010 @10:45AM (#31218392)
    I'd second this. (And would have modded it up had I had some mod points.) Even a beginning developer can draw some very useful information from Bloch's Effective Java. While you probably won't understand a large part of the details, reading through it will help give an idea of things to avoid and things to use. By going through the book, even if you don't remember all the details, hopefully enough will stick so that you can reference back to the section if you ever have questions regarding a particular detail.
  • by daveime (1253762) on Sunday February 21, 2010 @11:05AM (#31218498)

    What a load of tosh. So you need a CompSci degree to be a professional coder ?

    I've just finished a 9 year employment with a company that was based not on degrees, CVs or other paperworks, but on the basis of a successful 6 week freelance project back in 2000. I should point out I'm completely self taught, no formal training whatsoever.

    Coding has nothing to do with language or syntax, but upon having an analytical mind. Breaking down a problem into it's bare elements, and knowing how to make those elements work together is everything. There's plenty of CompSci grads who can parrot off the functions and procedures available in NET or JAVA, but haven't got the first clue how to apply those to the problem at hand.

  • by AlecC (512609) <aleccawley@gmail.com> on Sunday February 21, 2010 @11:20AM (#31218570)

    I would say that he is dong his best to rectify exactly the problem you raise. He seems to be well aware that simple knowledge of the language syntax is not enough to qualify to use the language, and is asking how he can rectify his lack of experience. I give kudos to him for being as aware of the problem as this, and more kudos for seeking out a place like /. to learn and to ask the question he has done.

    I would say that I am more self taught than academically taught - nearly forty years ago. And I have shipped a lot of systems used by a lot of users by choice, so my code cannot be that shitty.

  • by obarthelemy (160321) on Sunday February 21, 2010 @12:47PM (#31219160)

    I'm not trying to be mean or disrespectful to AC, but there a re a lot of pompous assholes which, when asked 'I've learned such-and-such, what next', ramble on about how how totally useless you still are, which is both uninteresting, mean, unhelpful, stupid, and not the question.

    I've spent more times listening to castrative bullshit spewed out by people with an ego and idiocy like his than I have having constructive, interesting conversations.

  • Sure we do (Score:3, Insightful)

    by Weaselmancer (533834) on Sunday February 21, 2010 @02:02PM (#31220026)

    Job security my man. Job security.

    Have some shop hire in a newb that can't write because they're cheap. Six months later they'll need me. And I'll be able to bill whatever I want.

    And on the other side of the coin - maybe he's an ace, a diamond in the rough. A colleague just waiting to be discovered. Not everyone I know who writes great code has a degree. I can think of three people that absolutely blow me out of the water - none with formal degrees.

  • by sorton9999 (958384) on Sunday February 21, 2010 @02:10PM (#31220108)
    I agree with writing actual applications to hone your new knowledge. My first real applications in java were a calculator and a CD collection application. I wrote these without an WYSIWYG IDE. It helps to really see how things work if you don't use a GUI "builder". If you want to get ideas for good projects you can read "Java Cookbook" published by O'Reilly. It provides some programming example projects that can be expanded upon. Finally, read a good algorithms book (can't think of any examples, sorry). Java is great for supplying many objects that hide the implementation, but it's still helpful to know the theory behind these implementations.
  • by TheTyrannyOfForcedRe (1186313) on Sunday February 21, 2010 @02:19PM (#31220228)

    I see a lot of posts suggesting that he start writing real programs. That's good advice, but it might not answer the question. The submitter says he works as a security guard. As such, sitting focused at a laptop writing code might not be an option.

    Are you kidding me? It is possible to write programs without a laptop or any computer at all. I used to do it when I was bored in Middle School which was 98% of the time. All you need is your brain, some notebooks, and a bunch of pencils.

    First, think about the overall design of the program. Sketch out the general structure using pictures, flowcharts, pseudocode, English, whatever. Figure out the data structures and algorithms needed. "Code" from the top down. When you get to interesting or challenging methods write them out in detail. For the others you can write the signature and a description of what they do, just like Javadoc.

    When you're "done" analyze the design as a whole. Think about what you could do better. Maybe redesign it a different way.

    A few hundred hours of this will make you a far better designer than if you had jumped right in writing code on a computer.

  • by paeanblack (191171) on Sunday February 21, 2010 @02:20PM (#31220242)

    That or you could become a project manager.

    The best thing he could do right now is to put Java on hold and learn to solve the same problems in a different language. Something with sufficient study material yet with a very different history than Java would be best, like Lisp or Perl.

    I don't think there is such a thing as a good monolingual programmer. The ability to compare different approaches is just too valuable, and the best time to pick up that skill is before you start seeing every problem as a nail. If the OP would rather go into project management, becoming multilingual would be less critical, but still valuable.

"We learn from history that we learn nothing from history." -- George Bernard Shaw

Working...