Please create an account to participate in the Slashdot moderation system


Forgot your password?
Java Education Programming

After Learning Java Syntax, What Next? 293

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 antifoidulus ( 807088 ) on Sunday February 21, 2010 @09:38AM (#31217960) Homepage Journal
    While I do regularly program in languages like Java that have automatic garbage collection, but in my experience you need to actually do some time in a language(C being the most common) that does not do this for you. While this is anecdotal, I've found that people who have never actually programmed in a low level language tend to regard object allocation and deallocation as "magic" and thus write poorly performing code.

    By implementing a lot of the same things in C you can get a much better feel for what is actually happening underneath the covers.
  • by slashbart ( 316113 ) on Sunday February 21, 2010 @09:40AM (#31217970) Homepage
    Buy an Arduino or something similar (msp-430) and see how much work it is to actually toggle a LED at a certain frequency, or drive an LCD connected via I2c or something. It's a whole new world. You'll have to learn C (probably) and maybe a bit of assembly language.
    Linux journal had a nice introduction article [] on embedded programming.
    I've been doing embedded development work for the last 20 years, and am still enjoying it. It pays pretty good, and you'll be far less interchangeable with someone else than your typical Java programmer.
  • by ytm ( 892332 ) on Sunday February 21, 2010 @09:40AM (#31217976) Homepage
    Write a program that tries to help to solve one of your everyday problems. It mustn't be the best in general, but it should be as good and as well suited for your own needs as possible. It could be something for you personal finance tracking, something for entertainment, a better interface for data that you can download from the web (dictionary? thesaurus?). The most important thing is that the problem must be interesting enough for you to finish the task so you should be able to at least get the software to a certain level of usability. Then write documentation for it.
  • by PCM2 ( 4486 ) on Sunday February 21, 2010 @09:47AM (#31218018) Homepage

    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. He seems to just want suggestions for books to read. As such, I reckon a book on algorithms wouldn't be a bad direction to head (provided he's got enough math to follow along).

    The only problem I see is that if he's taking these classes for college credit or working toward completing a certificate, he's going to be really bored with the later classes when he actually has to take them if he reads all the books beforehand. Either that, or he'll know enough to be dangerous and he won't pay sufficient attention to the guidance from his instructor.

  • Read more, code more (Score:4, Interesting)

    by Dun Kick The Noob ( 904001 ) on Sunday February 21, 2010 @09:48AM (#31218024) Homepage

    Read more if you want, MIT's open courseware is great, donate if you can, i do. they are good refreshers.
    There are pretty standard student projects, (like game of life, notepad, msg servers,)
    You might want to move into more advanced topics, like javax or concurrent stuff like RMI

    Algorithms are great to learn but sadly Ive had little chance to use em in real work, would'nt put too much stock in them for returns.
    In any case, any algos you need most likely you will learn on the job, if something slows too much.
    They are however fundamental if you want to be a proper engineer.(In my opinion anyway)

    If you want real world experience, go look at the freelance websites and just copy down the specs and attempt yourself.
    Dont need to bid, but these provide a snapshot of EASY projects in real jobs.
    I also have some 100% real world work projects assigned to me if you want to do for free........ just kidding

  • Java Puzzlers (Score:5, Interesting)

    by IamTheRealMike ( 537420 ) on Sunday February 21, 2010 @10:34AM (#31218306)
    This might be a bit heavy for somebody as new to programming as you, but Java Puzzlers [] is a great book for Java devs of all skill levels to read. It's a series of small programs that screw up in ways you wouldn't expect, often related to bizarre gotchas in the design of Java itself. Newbies might not understand every puzzle, but generally it'll give you an appreciation for the fact that no tool is perfect, and insight into what sort of bugs you might find yourself writing in the real world.
  • by WankersRevenge ( 452399 ) on Sunday February 21, 2010 @10:56AM (#31218448)
    The algorithm textbook that he is using is a great read provided he does the exercises at the end of each chapter. The great thing about the exercises is that they challenge the reader to tackle the algorithm from a different perspective. So, if an algorithm is demonstrated using a recursive method, the book asks the reader to rewrite it using an iterative method which is an excellent way to learn.

    I actually read halfway though the book skipping the exorcises, figuring they were too easy and I was wasting my time. When I started doing them, I realized how much I didn't know so I started back at the beginning and filled in all the gaps which really expanded my knowledge on the subject.
  • by Nerdfest ( 867930 ) on Sunday February 21, 2010 @11:10AM (#31218514)
    After that, find an open source project that interests you and try to participate. The comments and help you get from more experienced members of the team (code reviews, really) will greatly improve the quality of your code. It's one thing to write code that works, and another thing altogether to write code that is maintainable and efficient. I'm making an assumption here that you can find a project willing to take the time to help you as you help them.
  • by evilklown ( 1008863 ) on Sunday February 21, 2010 @11:12AM (#31218526)

    It may be too early in your education to know what you want to do in your career, but I would start looking in to areas where you can specialize. Client/server architecture will always be a skill that looks good. If you want to go this route, look into learning Java Enterprise Edition. UI design is good to know, but with abundance of WYSIWYG editors that are available now, writing UIs is becoming less of a skill. UI design theory is still pertinent even if the coding skills are going the way of the dodo. Some other skills that will come in handy are writing web services, database interaction (with JDBC and JPA, both good to know), and multi-threading. I would also recommend the book Head First Design Patterns [] to get started on learning how to design software (as opposed to just writing software).

    I would agree with what a lot of people have been saying, though. The best thing that you can do is put what you know in to practice. Start out writing a small application for yourself. Write unit tests.Do some code coverage analysis on the code and make sure you are completely covered. You can start with Cobertura []. Get to know what APIs are available in JSE. I'm assuming that in an academic environment you are using the latest JSE (6), so I would also look into familiarizing yourself with JSE 1.4. There are some major differences between 1.4 and 5 (and not a whole lot of major differences between 5 and 6), and if you are working on legacy code in the future, it helps to know what differences there are. Write an app in whatever you are used to using, write it again with JSE 1.4. Check out an open source project and debug it. Get code coverage on the project and write tests to cover more lines of code. Most OSS projects would be happy to integrate tests that increase their code coverage. Look through the bugs that have been logged against the project. Pick something small, fix the bug, and submit patches. Get familiar with build systems like Maven 2 [] or ANT []. That should keep you busy until next semester.

  • by Greyfox ( 87712 ) on Sunday February 21, 2010 @11:24AM (#31218598) Homepage Journal
    Right! Just because you have a degree doesn't mean you magically crap daisies and good code. I've met plenty of programmers with advanced degrees in Computer Science who couldn't tell me how to implement a linked list, or when one would be an appropriate choice over a hash table. I'd take someone with a high school diploma who enthusiastically engages me in the interview and actually thinks about my questions over some guy with a master's in CS who treats the interview like an odious chore he has to perform with me as an obstacle between him and a fat paycheck. Too many colleges have given complete jackasses a piece of paper for that paper to hold much value in my eyes.

    So yeah, go forth and write code wherever you think it will be cool. Work on an open source project or two that you can point me at, or find a company with an entry level programming position -- there are plenty of them around! Do it because you like it and you'll do all right.

  • Ant (Score:3, Interesting)

    by devman ( 1163205 ) on Sunday February 21, 2010 @03:21PM (#31220950)
    Learn to use Apache Ant. When I was in school they didn't cover Ant at all, it wasn't until I got in to the "real world" that I encountered Ant.

If all else fails, immortality can always be assured by spectacular error. -- John Kenneth Galbraith