Reddit Reddit reviews Head First Java, 2nd Edition

We found 144 Reddit comments about Head First Java, 2nd Edition. Here are the top ones, ranked by their Reddit score.

Computer & Technology Certification Guides
Computers & Technology
Head First Java, 2nd Edition
O Reilly Media
Check price on Amazon

144 Reddit comments about Head First Java, 2nd Edition:

u/D3FEATER · 699 pointsr/IAmA

The exact four books I read are:

Learning Obj-C

Learning Java

iOS Programming: The Big Nerd Ranch Guide

Android Programming: The Big Nerd Ranch Guide

However, I would now recommend learning Swift instead of Obj-C. At the time when I was looking into iOS books, good books on Swift were few and far between.

u/MrPhi · 215 pointsr/InternetIsBeautiful

You don't need school to learn how to do that. It's true for most things in life but it is even easier with computer science.

Want to learn C ? No school will ever teach it better than the book The C Programming Language (also called K&R) by Brian Kernighan and Dennis Ritchie.
Want to learn C++ ? You should start with C or C# or Java and then go for Programming: Principles and Practice Using C++ by Bjarne Stroustrup.
Want to learn Python ? Go to and pick a tutorial.
Want to learn Javascript ? Eloquent JavaScript by Marijn Haverbeke.
Want to learn HTML5 ? Maybe have a look at or W3Schools
Want to learn Java ? The Java Programming Language by Ken Arnold or Head First Java by Kathy Sierra.

You need two things, time and will. You'd be surprise how easy it is to learn all those things if you like it and if you have a dream project.

edit: Woh, thanks for the gold. :D

u/Waitwhatwtf · 208 pointsr/learnprogramming

When you learned Spanish, did you start having full-fledged conversations? Just walked into class on day one and boom: "tango el gato los pantalones"?

If I were a betting man, I'd say no.

They gave you a book for grammar, a dictionary for words, and taught you ways to pronounce and express sounds that aren't in English.

Most videos (whether they mean to or not) are presented in such a way, that you need to know Spanish before you start learning Spanish. Sometimes you get lucky, but most are for the already initiated.

I usually recommend this book for the uninitiated. It's quite descriptive, very short, and covers a large amount of topics briefly enough to get one interested in the language (or in programming in general). This is your grammar book.

Here's your dictionary.

The last thing you need is to use the language. In the case of programming, solve a problem. If you want to make games; learn the basics of Java grammar, and make a guess-the-number game. Then work up to a text adventure. Then figure out how to do pong, then breakout, then tetris, then Mario.

Software development isn't about knowing everything. It's about knowing what you don't know and learning what you need to learn to solve the problem.

u/zakimirza88 · 21 pointsr/java

Head First Java is what you want.

u/NullEgo · 14 pointsr/AskComputerScience

The biggest hurdles I had motivating myself to work on a project was never coding itself. It was always setting up the compiler, IDE, environment, finding something to work on, etc. The biggest one for me is blank page syndrome.

You don't need to convert to linux if you don't want to but it is good to get some experience in it if you can. I spent sometime setting up a headless Ubuntu server to manage my torrents and be network storage. It took a lot of time starting from scratch but the experience has helped me out.

If you want to continue with Java (which is a good choice). I believe the most popular IDE is Eclipse. It has great plugin support and has been used everywhere I've been. You can use it for development on android phones as well if you want to play around with mobile development.

If your college is like mine, most of the later courses in computer science will not involve much coding at all but will involve a lot of math and knowing popular solutions to common problems (sorting, searching, graph theory, combinatorics). If you feel like you need to brush up on a language, there are a lot of web resources and books to help you.

Computer science and software development is a broad field which makes scaling it daunting at times. The only way to make it less daunting is to just dive in and do it. Pick a project and work on it. You will encounter problems you have no idea how to solve and that's great because now you've found something you can learn (usually through Google).

Solve problems in manageable bits. If you try to implement your whole program at once it will seem impossible. Implement small portions of your project at a time. Trying to create a Java chat client? Just work on getting some basic sockets to work and build a library you'll be able to use going forward. This will make the goals seem manageable and help you modularize your code. It helped me with not feeling overwhelmed about my project's scope.

I hope I didn't sound condescending. I just wanted to share some things that have helped me. I don't think you are in a bad spot, you just need to stay motivated and find some things to work on to help you learn. If you have any specific questions I can try to help out, but there are other people on this sub that are far more knowledgeable than me.

u/reckoner227 · 13 pointsr/java
u/BuilderHarm · 13 pointsr/learnprogramming

I've heard good things about Head First Java.

I haven't read this one, but I have read their C# book, which I highly recommend.

u/Deco21 · 13 pointsr/java
u/CMUKyle · 13 pointsr/Android

You're definitely going to have to have a good working knowledge of Java (or some other similarly-structured OO-language like C#). That's honestly the biggest hurdle.

For that purpose, I recommend Head First Java. It's actually a book you can read straight through (if a bit goofy), but it does a better job of teaching Java and OO concepts better than anything I've ever come across.

After that, it's pretty much all the way home. Best of luck!

u/Joecasta · 12 pointsr/computerscience

If you aren't doing well in your current CS courses, I'd highly recommend you focus on your university's courses and do well in them before deciding to bite off more than you can chew. Do some research and look for very basic coding books, not ones like this:

Look for a bit more like this:

This depends on what language you are currently learning right now. Don't worry about entering contests and participating in projects or open source coding until maybe second or third year in especially if you haven't had any prior experience. Don't rush yourself into this, you need to make sure you absolutely understand the basics before going into things like hackathons or being very concerned about internships. Take your time learning, and don't enroll onto too many online courses if you think that you can't handle it. Yes, online courses can be helpful, and will only be really helpful if you treat them like real classes. I would advise against code academy or khan academy to learn languages since I've gone through them and they never helped me really grasp CS material better than a book and actual coding. Key here is to code as you go through a book, or else you'll never learn how to actually code. Do tons of simple programs and if you don't understand code bits, don't get frustrated. Copy paste the code, and use a debugger (a bit more advanced but very very helpful) to go through step by step what the code is doing.

Main Points:

  1. Don't rush, learn slowly, fully understand each concept before moving on

  2. This won't be very intuitive for most people, it's like learning an entirely new thing, but you will eventually hit a wall and learning gets much much easier in the future.

  3. Don't do more than one or two online courses, and don't be too concerned about doing any projects or competitions you likely won't be able to understand most project code or any, same goes for competitions until you at least fully know how to code in an industry standard high level language such as C/C++ or Java.

  4. There's a lot to do, but don't overwhelm yourself, pause every now and then and focus on a single task

    Best of luck to you, remember to enjoy the process, and keep in mind that while you might not like coding, CS isn't coding. It's the principles that underlie what we can do with code. A lot of it comes from really basic logic, you will be surprised in the future how easy some things can be to understand with basic step by step thinking.
u/Clamhead99 · 12 pointsr/learnprogramming

Yeah, you definitely should get a intro to java book and go along with it.

Perhaps check out Head First Java. It's ... a bit cheesy (cause they try to make it "fun"), but I found the material to be pretty solid for beginners.

Looks like someone uploaded it online, if you dont mind reading a textbook on a screen.

u/whatiswronghere · 12 pointsr/java

I would definately recommend going for a book. Head First Java is the book I'm learning from right now, and I find it to be engaging, funny, and on point.

u/chunky_bacon · 11 pointsr/programming

Head First Java. This is an outstanding, fun, book and an easy read. Good explanation of OO principles as well.

After that, just start coding. I had previously done C and Perl, but HFJ is written for the absolute beginner.

u/okmkz · 9 pointsr/java

> Look for a book on object oriented programming

For this I recommend both Head First Java and then follow that up with Head First Design Patterns.

u/tasulife · 9 pointsr/arduino

Learning electronics is a lot like music. There is an insane amount of information, but if you get an economic working knowledge under your belt, you can really do some amazing things. In order for you not to get lost in the rabbit hole, I will provide you these methods of learning practical hobby electronics.

First, is simply just a suggestion. There are two "domains" of electronic thinking and analysis: digital and analogue. Fuck analog right in its dumb face. The math used in analog is fucking super duper hard, and analog circuits are prone to interference problems. Digital is where you want to be. It's vastly simpler to use programmable digital parts, and analyze digital circuits. Don't get lost in AC equations of capacitor, or the god damned transistor equation (seriously, fuck that. )

Okay here is how I learned hobby digital electronics:
First buy this, and go through all the examples in the workbooks. When you learn electronics you 100% HAVE TO DO HANDS ON LEARNING! DONT LEARN IT FROM A BOOK! MAKE CIRCUITS!

At the same time, read this (which is a good topical explanation, and free):

And buy and read this (which is an EXCELLENT formal introduction into the physics):

Also you are going to learn how to program, which is an entirely different topic. Programming and hobby electronics make you a master of the universe, so it's worth it. I learned programming in the electronics domain and it was awesome. I made a microcontroller FM synthesizer:

So basically, the way I learned programming in general was self-teaching with books. Again, you have to do it hands-on. Actually complete the examples in the books, and you'll be fine.
First, learn procedural c programming using C primer plus. Buy an older version so it'll be super cheap:

Next, learn Object oriented programming using head first java. They do a great job of tackling OOP, which can be a difficult thing to learn.

You're overwhelmed because they're deep topics. But, seriously, its the most fun shit ever. You'll love learning how to do it.

u/FuzzyGamer · 7 pointsr/learnjava

For Android I can recommend the Udacity course. Basically they teach you the building blocks of any Android App by making you build a weather App. It's very... "holdy-handsy" though. Each concept is broken down into manageable chunks (small coding exercises). You get to watch videos explaining the concept then you gotta complete the example programs they provide (It's basically just following some TODOs that are commented in the code), and at the end of the class you have to put it all together and add that to the main weather app.

They won't explain any Java syntax / concepts that they use but if you know some OOP language it won't be too hard to understand what they are doing (though it's gonna be a bit harder to understand why they are doing it the way they do).

Top tip: every exercise is accompanied by a short video where someone will show you how to code everything. My suggestion is to watch the video once to get the basic gist of it then go and code by your own (using the Android Reference if needed). Avoid just copy-pasting what you see in the video. It might seem sluggish and hard but that's how you'll get the most out of it.

As for Java, I don't know any course that teaches it in that manner but I can recommend Oracle's Java Tutorials and Head First Java. Oracle's tutorials are really comprehensive but imo they can get a bit dull, while the book is really fun and easy to follow (and if you know a concept already you can just skim that chapter and move on).

u/zzyzzyxx · 7 pointsr/learnprogramming

You have semicolons after your if statements. Though I don't see why it's not printing both statements. In fact, I just ran what you have posted and it did print both. Did you mistype something by chance instead of copy/paste?

Your if statements should be something like

if (mrk >= 440) {
// print message
} else {
// print other message

Note that there are no braces around the if statements like you have either.

Edit: You should probably get a better resource for Java than a For Dummies book. Head First Java is often recommended. You might try the official Java tutorials as well.

u/ballsonmywalls · 7 pointsr/learnprogramming

The official tutorials are not bad:
I also recommend Head First Java as a book:

u/NerdyTerdy · 6 pointsr/learnprogramming
u/Razzal · 6 pointsr/javahelp

For a good beginner book that I think explains things well, look at Headfirst Java.

u/jacksonspumoni · 6 pointsr/salesforce

I studied for about 4-5 months. I work as an admin now with a little dev experience. Got about an 80-85% on the test. Here is what I did.

  1. Learned the basics of Java with this book:
  2. Watched all of David Lui's videos here:
  3. Did all of these trailheads:
  4. Messed around a TON in my dev org making some visualforce pages and all that jazz.
  5. Read the entire Focus on Force study guide:
  6. Took the Focus on Force practice tests until I got a 100% on all:
u/bob_twinkles · 6 pointsr/unixporn

All the code is up on github here, so feel free to poke around. If you have specific questions about the architecture or design I wouldn't mind answering those, but I don't have the time to walk you through everything line-by-line. If you need that kind of instruction I would refer you to the fantastic tutorials for OpenGL related stuff and a project oriented tutorial-style book like this one for Java for general programming concepts if you're just getting started. I'm not familiar with anything similar for C/C++ but perhaps someone can chime in with suggestions.

u/Tanellthyon · 5 pointsr/learnjava

I don't know how far you are into your academic career, but here's a pro-tip/lifehack from someone who got through a master's degree in an unrelated discipline: If the professor doesn't require the latest edition (just ask them), don't get the latest edition. Get one or two editions back, if they're not super-old, and the $25 2011 edition or the 32 cent 2008 edition are probably more than adequate for an introductory book. Hell, the most referred to book (one I love) -- Head First Java, 2nd Edition -- is from 2005, and it's still relevant even if it doesn't cover the most recent language developments.

It's very rare that a college book for anything other than highly advanced courses or cutting-edge technology will have anything necessary in the most recent editions. I don't know how many thousands of dollars I saved over my academic career buying two versions back, and never personally encountered a single problem since the majority of what they do is reorganize pages, add a graph, and call it "9th version" or something. I took a few books and did side-by-side comparisons and have never found anything worthy of $100-200 price tags versus $3 or less -- most often things like a picture moved to the opposite page or an updated index.

Again, this is most especially true for beginner courses, and you should always talk to your instructor. But in the off-chance anything is missing, you can just ask a classmate to read the relevant chapter from their book.

But for an unrequired side book, it's hard to justify spending $100+. Maybe try the 2008 edition while googling newer features, or take a look at Head First Java (great introductory book, in my opinion).

u/jnotarstefano · 5 pointsr/italy

Head First Java contiene l'introduzione agli oggetti più semplice e carina che io abbia letto. Però è in inglese, e non è stato tradotto. D'altro canto ti devi arrendere: l'inglese è un requisito per imparare la programmazione. La quantità di materiale nelle due lingue è semplicemente non paragonabile.

u/Extremophile · 5 pointsr/AskReddit

I think Head First Java is a good book for beginners.

u/liftdeadtrees · 5 pointsr/learnprogramming

I like the book Head First Java if you have some programming experience. If you need something more basic (actually it's probably very similar to your class), Stanford has their Intro to CS class online here. It's in Java, and the teacher is pretty entertaining.

u/spitfyre · 5 pointsr/learnprogramming

I used Head First Java. It's actually a pretty funny book and helped me get all the OO concepts down really well. Very easy read.

u/AnonymousMax · 4 pointsr/sweden

Beror helt på kursen. Vill du förbättra dina odds så kan du börja i förväg.
Då jag antar att det är javaprogrammeringskursen du ska gå så kan du t.ex. skaffa den här boken och blädra igenom den i förväg.

u/willp · 4 pointsr/learnprogramming

Head First Java is a good resource for new Java programmers that want to get a firm grasp on the language. Some people dislike the "cartoony" presentation, but if you can get past it, you can really learn a lot.

u/Medicalizawhat · 4 pointsr/learnprogramming

Maybe try Head First Java. I read that a while ago and found it pretty good.

u/dmazzoni · 4 pointsr/learnprogramming

The best thing you can do to learn is spend more time writing code. It doesn't matter what the textbook is or what the course you're following is. For every new concept that's introduced, you need to write a lot of code using that concept or you're not going to truly understand it.

It's one thing for someone to tell you about overloading and for you to say, "that makes sense". It's a different thing entirely to write a program that could actually benefit from overloading and to see exactly how it works for yourself.

You know one common trait of all of the CS courses at top universities? They assign a lot of homework. That's because there's really no substitute for writing a lot of code.

To directly answer your question, I'd recommend a well-reviewed book over a video any day. The top-rated Java book on Amazon right now is Head First Java, but any of the top 10 rated Java books will probably work just fine for you. Go back to the first chapter that has a concept you don't fully understand and start reading from there. Take the time to actually do exercises.

u/Eggbotnik · 4 pointsr/learnandroid

I think the first confusion here is that the language is a entity in the construction of a program. Does the type of a house that is built depend on what type of hammer the carpenter used to put up the walls? Or what kind of wrench a plumber used to put together the piping? Sure, the carpenter or plumber could've used a crowbar to do their job, but was it the right tool for the right job?

The right tool to build an Android app is Java. If you need better performance, and you don't need Google APIs, you can include C or C++ to further improve performance at the cost of added complexity.

There are a lot of different abstractions to add the ability to use other languages on the platform, but this comes at the cost of performance, and added potential points of failure (more abstractions = more potential bugs not caused by the coder.)

Heavy number crunching (especially on a RISC architecture) may push the device to its limits. Do yourself a favor and learn how to use the right tool for the right job. This book is both entertaining and informative, and this book will get you started in on C++ in a short amount of time.

C++ is the inspiration for Java, and the creation of Java is what caused C# into being. As such, the syntax for all of these languages are tightly woven between each other. I wouldn't doubt that within 15 minutes of light reading on Java you'll be up and running in its entirety.

C++, while being a slightly more complicated beast, isn't inherently an overly complicated one. The Object-Oriented concepts are all there to be leveraged.

While you say you're not a professional programmer; I think you'll find that broadening the languages you do learn will improve your ability to convey your thoughts and concisely implement them.

Best of luck!

u/built2fall · 4 pointsr/learnprogramming
u/theryn · 4 pointsr/javahelp
u/morhp · 4 pointsr/javahelp

The Head First series is quite light and fun to read/work through. I'd suggest

followed by

Honestly, not too sure if the first book is that great, as I haven't read it, but the look inside view looks quite good and the reviews aren't too bad. Maybe there are alternatives.

The second book I have read and would highly recommend. You need some basic beginner knowledge about objects and stuff first, though.

Edit: Also if you haven't done it yet, think about setting an IDE up for him (or let him do it himself). Nothing discourages more than having to mess with line numbers in compiler output logs, or get frustrated because you run the wrong class files and so on.

u/AlphaOmegaTubbster · 3 pointsr/androiddev

Here are a few helpful resources to help you out.

Firstly, you probably need a beginners grasp on Java. For that, I would highly recommend:

You do not need to go through the entire book, But it would be more helpful to you.

Secondly, I highly recommend this android book:

They literally walk you step-by-step.

However, if you do not feel you can teach yourself programming there is always this option:
I haven't personally messed around with it but it doesn't require any programming experience.

Here is a free online class that starts tomorrow if you have the time.

or this one that is already finished but you can still access the material.

You could also go at your own pace through it.

Here is also a udemy course that also teaches you java. I would get it now before the price goes back up to 200 bucks.

I haven't personally taken it, but a friend of mine has and he loves it.

Basically, just start reading and learning. The big nerd ranch book that I listed has some really great beginner apps that teach you the basics.

Persistence is the key. Don't give up, fight through the pain. Google like crazy.It's worth it, trust me.

u/Lerke · 3 pointsr/learnprogramming

A good book. For instance Head First Java.

u/oblique63 · 3 pointsr/INTP

As a former programming teacher, I'll have to second Udacity here (over coursera and codecademy), but I'll admit Java isn't my first choice for teaching how to program, and Udacity seems to share my view by teaching mostly python and javascript courses.

Honestly, mobile development is one of the harder areas to work in, so to start with it is gonna be a steep learning curve, but I'm not gonna try and dissuade you from it if that's what you want to do, just mentioning it to comfort you by letting you know that it'll be completely normal if you end up feeling frustrated and lost for a good while. Hopefully it won't take too long for things to 'click' though.

That being said, one of my favorite teaching resources is Learn Python The Hard Way (don't mind the name, it's written for total beginners, but has a unique teaching style that I really like). Obviously it's not in java, but it's great for giving you a general idea of what programming even is.

As for Java specifically, Head First Java was my bible when I was first learning it ages ago. Really accessible style, mostly conceptual, but all very important.

Once you have that down maybe you can tackle more Android-specific stuff, but looking too deeply into Android code before you have a firm grasp of major programming ideas might confuse/frustrate you more than necessary, so don't worry too much if it happens. Just my precautionary advice, but feel free to make your own path...

u/Shaken_Earth · 3 pointsr/AskReddit

Head First Java. I learned how to program from this book when I was 12 if that says anything about how great it is.

Also, /r/learnprogramming.

u/broheem · 3 pointsr/macsetups

I recommend getting this book it helped me a ton

u/Chew55 · 3 pointsr/java

I haven't used it but at university my lecturer used to recommend Head First Java as a gentle introduction to Java and for any students who found themselves struggling to keep up with the pace of the class. It contains lots of practical examples and is pretty unintimidating.

I've used the Head First series for other topics and always found them useful.

u/MikeAeon_ · 3 pointsr/learnjava

I've heard that Head First Java is a good book, but I belive it caters more
to the beginner programmer rather than someone with OOP experience like yourself.
Here's the PDF so you can check it out anyway.

u/enelsk · 3 pointsr/learnprogramming

You should check out the official Java Tutorials.

I suddenly found myself developing Android apps as part of a career shift, and I didn't know Java very well. I went through those tutorials and felt pretty comfortable afterwards, I don't think it took me more than a few weeks. That said, I already had a background in software, so YMMV.

Regardless, they'd probably be a great way to get your feet wet before diving in during the semester.

If you're looking for a lighter intro, pick up a copy of Head First Java. Can't really go wrong with those books, they're always an easy read and lead by example; a good thing for someone who's learning for the first time.

u/samort7 · 3 pointsr/learnprogramming

I saw someone posting Head First Java and you might want to take a look at this thread and this thread in regards to that book. Here's my opinion from those threads:

Headfirst Java was published in 2005. It's 13 years old. If you're looking to learn Java, there are plenty of excellent resources that also cover the latest features of the language:

u/asknarovs · 3 pointsr/learnprogramming

A little bit old but still useful: Head First Java

u/VladimirStrelok · 3 pointsr/learnprogramming
u/SofaAssassin · 3 pointsr/cscareerquestions

In my experience, Barnes and Noble tend to have absolutely pathetic selections for technical books, aside from garbage like "Make Money using (Facebook/Twitter/Youtube" or any of the generic "X for Dummies" tomes.

There are plenty of online resources for learning at least the basics of things you want, like:

u/darthirule · 3 pointsr/Minecraft

Don't use Codecademy if you want to learn Java because they don't have a Java course.

I am a fan of the Head First series.

And if you are looking for free resources there are a ton online.

I suggest going over to /r/learnprogramming and read the FAQ on the side bar.

u/ConfusedEngi · 3 pointsr/learnprogramming

I've worked with computers for a really long time too, but I never did a lot of programming. Believe me, I struggled my ass off with Java. A lot of people do. There's a currently free Udemy course for Java that I'm actually taking right now, just to brush up. I'd recommend it. I think it's one of the top posts in /r/learnprogramming right now. Please check it out. You might also look into Head First Java as well. I bought the book and really liked it. Explained everything in a more friendly way.

u/zgm3 · 3 pointsr/learnprogramming

Thinking in Java and Head First Java are also really good.

u/jaimp · 3 pointsr/learnprogramming

I think Head First Java is definitely what you're looking for.

It's designed to be fun, interesting and pretty fast paced. Also, it's very easy to skip around chapters to find info on what you need. I don't think it goes very in-depth regarding data structures, but that is mainly what your class is for! This book should easily get you up to speed regarding the core of the language, and OO programming in general.

u/code_injector · 3 pointsr/cscareerquestions

Depends on what you mean by being "paid to code." IMO it would be very difficult to get to a level expected of a professional software engineer in that amount of time. I do honestly believe you'll learn to code, it's just that there is so much more to it. You'll also need to learn algorithms and data strucutres at a bare minimum, as well as things like version control and design patterns.

I do think you can get to a level where you could potentially be some sort of administrator, potentially writing scripts or SQL queries, and work your way up from there.

Things you can do:

  • Take a course or two on Coursera
  • See if you can do a few challenges on project euler.
  • Hang out on Stack Overflow a lot, especially hang out in the tags of whatever you're learning.
  • Pick up Head First C# if you're set on .Net, otherwise Head First Java. (People may tell you these books are kinda silly but they're good for self-study IMO).
u/get_username · 3 pointsr/learnjava
u/katyne · 3 pointsr/androiddev

Forget Android studio for a time being, start with Eclipse. It's been around forever and most beginner tutorials use it, once you get the gist of how to integrate tools with IDEs you can proceed to AS.

Eclipse might complain about missing JRE (Java Runtime Environment) because although you have downloaded JDK/JRE, it doesn't know where to find it. Eclipse is integrated very close with Java(written in it to be exact) and it needs any JRE up from 1.5+, just for it to launch. If your particular project uses different Java/Runtime (like when you will use Dalvik VM and Android JDK for your Android projects, which are a somewhat different from Standard Edition Java) you can enter the ones you want later in Eclipse using Project settings).

When you first launch Eclipse it needs to load a JVM and complains if it doesn't find one. Search your computer for folders like jdk and jre, if you have none, download Java SE 6 or 7 64bit suitable for your OS. Extract to a folder of your choosing.

If you already have Java installed on your computer, you'll just have to update system-wide PATH environment variable to include the freshly-extracted Java subfolders which contain the executable (javaw.exe and jvm.dll if you're on windows, google "set up java path" if you're on Mac or Linux).

I would recommend practicing with plain Java first though. Android is an immensely complex framework and it heavily relies on such concepts as OOP and various design patterns which you have to understand or it's gonna be deer-in-headlights every time you read a new doc. You don't want your development experience to consist of copying and pasting other people's code, right? You'll have to do some homework then.

First, you need to have a solid Java/OOP foundation. Head First Java was a great OOP book for me, it's really intuitive and fun to follow (you don't have to finish all of it, for example, feel free to skip the applet and chat client parts, and bookmark serialization to revisit it later). You can download free pdfs of earlier editions, too. Then if you have the patience, follow up with "Head First Design Patterns" from the same publisher, again, familiar format, easygoing content structure, - once you get the hang of these two concepts you're somewhat good to go. I know some people will be all "you kidding right, TWO books before you even touch the thing? screw that just start coding" but I you will seriously need this knowledge if you ever want to even start navigating Android framework with some level of confidence.

It's a steep learning curve for someone learning or re-learning after such a long break (same here by the way) but it's so freakin' satisfying once you get the hang of it. Don't give up, most of these problems have been solved a hundred times before.

u/ImEasilyConfused · 3 pointsr/IAmA

From OP:

>The exact four books I read are:

>Learning Obj-C

>Learning Java

>iOS Programming: The Big Nerd Ranch Guide

>Android Programming: The Big Nerd Ranch Guide

>However, I would now recommend learning Swift instead of Obj-C. At the time when I was looking into iOS books, good books on Swift were few and far between.

From u/AlCapwn351 in regards to other sources to learn from:

> is a great site for beginners (and it's free). It's very interactive. W3schools is good for learning stuff like JavaScript and HTML among other things.

>When you get stuck will be a lifesaver. Other than that, YouTube videos help and so do books. Oh and don't be afraid to google the shit out of anything and everything. I feel like an early programmers job is 90% google 10% coding.


>It's also good to look at other peoples code on GitHub so you can see how things work.

u/[deleted] · 2 pointsr/java

Try supplementing with this:

Hang in there!

u/Attentional · 2 pointsr/london

Yeah, I've been doing that a bit more. If I can't find a suitable course in real life, I'll continue down this path. I just thought it would be worth asking if anyone knew of anything special.

It may just be that I need to spend more time training myself on the design stages, and I need to spend a lot more time thinking about how to structure simple applications.

I suppose I could search github for some simple java programs and have a look at their codebase to try to get the hang of things.

I've been reading Head First Java which isn't bad, but perhaps you have other suggestions?

I knew it would take a while for me to learn the thought process, as that is one of the major reasons I am trying to teach myself programming. I don't have any plans to become a full time expert developer (although I do plan on being able to make crude prototypes of some of my ideas). :)

I'm very grateful for any and all advice.

u/nikofeyn · 2 pointsr/csharp

take a look at head first java and head first c#. i learned object-oriented programming from head first java, but was implementing object-oriented code in another language, which is one example of how good the book explains the general concepts. it is far better than head first c# in terms of explaining object-oriented concepts and is likely better than most books, but head first c# gets you a lot of hands on experience with visual studio and c#.

reading head first java first and then moving to head first c# wouldn't be a bad approach, in my opinion.

u/tonylearns · 2 pointsr/learnprogramming

Note the stupid errors that I made that the others pointed out.

In your actual code what seems to be the problem with Paddle is that you've declared a return type for the constructor.

Your code:

public void Paddle()

While a constructor should look like this:

public Paddle()

Since there is a return type in your code, java does not see it as a constructor and will not invoke it when you use new.

Hopefully that's where you're having troubles. If not, copy pasting the errors would also help.

Also, as far as resources, I've heard good things about Head First Java.

u/ryosen · 2 pointsr/javahelp

Java is a great language to start out with and I would recommend two books to get you running. Since you are new to the language and programming in general, start with Head First Java. Then, move on to a more advanced treatment like Core Java. Thinking in Java is also very good but it's dense and some people have a difficult time digesting it.

Once you have the basics of the language down, learn about working with databases. Then, move on to server-side development as that's where the jobs are.

Despite the similarity of their names, Java and JavaScript are not similar and cannot be used interchangeably. JavaScript is primarily used in UI development in web browsers, although server-side implementations have existed for almost as long as JavaScript itself. Currently, the most fashionable of these implementations is node.js.

Lastly, since you are looking to work professionally but without any formal education, know that you are going to have a difficult time getting work for the first several years. You might find that learning JavaScript (and HTML and CSS) are a quicker route to finding a job as front-end web developers often do not require a college degree, whereas Java programming jobs invariably do.

u/MrDjibrilo · 2 pointsr/serbia

Sto se tice posla ostali su ti odgovorili detaljno, generalno ima posla, ali se trazi znanje, tako da samo uci, uci i uci.

Sto se tice Jave, ja bih ti preporucio da nabavis ovu knjigu i da je proucis dobro.

E da, zaboravio sam da ti pokazem ovaj sajt. Ovaj sajt ce ti dosta znaciti ako si spreman da posvetis vreme izucavanju oblasti informatike kao da si upisao fakultet.

u/Babelius · 2 pointsr/AndroidQuestions
  1. I don't know, I purchased my GNex when it first came out.

  2. CM9 is a build of the Android OS, it's not a different OS altogether. The worst case scenario with a GNex is that you soft-brick the phone, panic, need to take a deep breath and look at this thread.

  3. Look at this thread, ignore the tool and do it manually at first so you know what is actually happening. Then look here.

  4. Take the advice that Cyanogen (the dev that started the whole CM(x) thing) to heart. If you don't know Java, start here. Once you know Java pretty well, start here, and keep this, and this in your back pocket for when you need them.

    Any further questions, don't hesitate. Best of luck.
u/IthinkIthink · 2 pointsr/learnprogramming

I recommend Head First Java to get started learning the Java language. From there he can go on to more complex texts and resources; but this would be a great way to ease him into learning it.

u/pimterry · 2 pointsr/IWantToLearn

Dunno about game-specific stuff, but this book is really really really good, and will get you up to a very reasonable state with Java. Doing that, then getting onto the game stuff once you properly understand the basics is probably the best way of doing this :-).

u/watafu_mx · 2 pointsr/java

>I want to make more applications...but I don't have any there any reading you would recommend me to do?

Have you read Head First Java?

Head First Design Patterns?

The pragmatic programmer?

>I want to be employable...after 3 years doing a computer science course, I feel like I still only know the basics. What Java books do you value most and feel helped you become a much better programmer?

In my particular case, I didn't read books. My interest has been developing web applications, so I have gotten more information from frameworks' documentation an tutorials than from books.

>What are some examples of programs you made when you were 1 or 2 years into your Java programming career?

Hmm... I created some plugins to check on the availability of some servers and services. When it detected those were unavailable, it sent email and SMS alerts to our system administrators. Things got interesting when the email server was down tho.

>What resources would you recommend me reading to understand how to make my android applications able to access the that users can compare high scores and achievements?

>I have the drive. I love programming and I want to be a successful one. What advice can you give me?

Code as much as you can. Check what kind of applications you want to develop and find which frameworks can help you build them. You don't need to re invent the wheel (unless necessary). Follow the developer's guide and check if there are any tutorials that you can use to improve your knowledge and make better applications in the better way possible.

>Thank you for your help. I really appreciate it. I've felt stuck for days and i honestly did browse a lot before I came here. I've seen a lot of Java developer jobs paying £20-40k but i feel i don't have the relevant experience to even apply to them yet. I feel like i know very little..I.e I have no idea what J2EE is and what it's used for.

From wiki:
"Java Platform, Enterprise Edition or Java EE is Oracle's enterprise Java computing platform. The platform provides an API and runtime environment for developing and running enterprise software, including network and web services, and other large-scale, multi-tiered, scalable, reliable, and secure network applications. Java EE extends the Java Platform, Standard Edition (Java SE)[1], providing an API for object-relational mapping, distributed and multi-tier architectures, and web services. The platform incorporates a design based largely on modular components running on an application server. Software for Java EE is primarily developed in the Java programming language and uses XML for configuration."

If you want to build enterprise web-enabled applications, this is what you should start reading:
J2EE 6 Tutorial
And I always recommend these as well, they helped me a lot when I was learning Java Server Faces: (He has an Android tutorial that might help with with your interest to develop applications for that OS)

u/Chomskyismyhero · 2 pointsr/learnprogramming

Head First Java

Thinking in Java

Effective Java

Java Concurrency in Practice

Best $150 you'll ever spend. Read in order listed.

u/wpnx · 2 pointsr/learnprogramming

You're right that the way to solve this is to read a reference book. You should probably only focus on one language (there are idiosyncrasies between java & C#)

The head first guides are a good start.
C#: here
Java: here

u/CSResumeReviewPlease · 2 pointsr/java

This, as well as any tutoring services the college makes available. If you're just looking for an easily understood Java book I've been reading through this book and it's a very approachable book.

u/umeshawasthi · 2 pointsr/java

If you just starting, my suggestion is to start Head First Java book. This is one of the best book for beginners (It's still in my collection).

Once you have basics, you can start looking in to web resources to more advance tips and tricks.

u/s1lv3rbug · 2 pointsr/learnprogramming

You are on the right track. The most important to understand is the fundamentals of any programming language. You mentioned Java. Java is an object-oriented programming language. In order to write good code in Java, you will need to learn what is an object? What is object-oriented? Like, what is inheritance, polymorphism, classes, interfaces etc etc. Once you learn the concept of OOP and you want to learn Python (another OOP language), it will be that much faster, because you already understand the concepts. Python has its nuances but you learn as you go along. I think you should start with the Head First series by Oreilly. They are sooo good at teaching this sort of stuff. I will give u the links below:

Head First Java

Head First Object-oriented Analysis and Design

Head First Design Patterns

Buy just the one book and start from there. Checkout the Head First series, you may like other books too. Also, google 'design patterns' and read about it. Some people mention Algorithms and that is all great stuff and you will learn as you write good code. There is another book I would recommend:

Pragmatic Programmer

I would also suggest that you should try different types of programming languages as well. Like functional (LISP or Scheme) or procedural (C). When you do that you will start to think differently and it will expand your knowledge. LISP was created in 1958 by John McCarthy. My friend works at Google and he told me that they are using LISP behind Google Maps.

u/ryhex · 2 pointsr/gamedev

If you are looking toward application development(games or otherwise) I'd suggest looking at more practical beginning programming books, don't even worry too much about making a game yet or building complex algorithms. I've found the Head First series fairly good in the past, so maybe try out

Once you get your head around basic application development a bit more, I would highly suggest learning design patterns and can fully recommend the Head First book on that topic.
You can follow that up with the Game specific book on patterns,

With all of that you should have enough to start asking more pointed questions and being able to Google up useful answers and tutorials that will get you on the road to building games.

Edit: That said, if you are looking at doing to extensive AI programming, specializing in engine design or other systems type development, start looking for books on the topic that interests you most. It's pretty easy to Google up book lists on these kinds of topics, and from there you can cross reference recommendations and should be able pick out ones that will help you get started.

u/Mat2012H · 2 pointsr/learnprogramming

Here you go ;)

Curious, why Java? (I'm not saying that as a bad thing, I personally love Java, I'm just wondering why you landed on that)

u/E3FxGaming · 2 pointsr/learnjava

> I'll definitely check out that mooc that you mentioned.

I recommend this too. If you want a book to compliment the course I recommend Head First Java. Maybe pick it up at a library first and read a few chapters to see if it fits your learning style.

The online course is more practically oriented giving you tasks to do, while the book focuses more on explaining things using really good real-world examples.

u/denialerror · 2 pointsr/learnprogramming

Might be one of the Head First books? Head First Java is a light-hearted and informal approach to learning Java, for instance.

u/phao · 2 pointsr/java

I've heard good things about these two:

u/ubcsthrow · 2 pointsr/UBreddit

Might be a little more of a learning curve for someone without no experience but if you stick too it it's very doable.

I would recommend doing the code academy java tutorials as a good basic introduction.

If you prefer textbooks there is a great book here that my highschool students are using for learning Java.

This might be something to do for you over the summer in your spare time.

u/surfinThruLyfe · 2 pointsr/java

Head First Java is a good book for beginners.

Head First Java, 2nd Edition

u/eco_was_taken · 2 pointsr/SaltLakeCity

Umm, I think Python is a good language to start with. It's forgiving and low on boilerplate code. I haven't read it but Learn Python the Hard Way by Zed Shaw is supposed to be decent (and it's free online). I didn't like Learning Python published by O'Reilly. I'd just read reviews on Amazon if Learn Python the Hard Way isn't working for you. Whichever you end up with, I recommend typing all examples from the book into the computer by hand. Something about doing this really helps make things stick in your head. You'll also make the occasional typo and have to debug your program which is something we programmers spend more time doing than any of us care to admit.

I think it is important to try to think of something you want to make and have it in mind while you are learning the language. It can be any software but I recommend a video game. They are really good for this because you can just think up a simple concept or implement your own version of an existing game. Having a goal makes it so you are constantly solving the problems you will encounter while trying to reach that goal which is the most important part of programming (more so than learning the syntax of the language). This is actually the highest rated Python book on Amazon and is all about gamedev with Python.

After you've learned Python to the point where you are comfortable (no need to master it), learn other languages to grow as a programmer. Once you've gotten a couple languages under your belt it's actually really easy to learn even more languages (unless it's a very odd language like Haskell, Lisp, or Brainfuck). The problem solving skills you've acquired often work in any language and you learn some new techniques as you learn new languages.

u/a_redditor · 2 pointsr/learnprogramming

Cool man. Since the intro to OOP class is in Java, they probably have you using Java in the next few classes too, so you probably want to get a decent grasp of Java before you take the course again. It will probably feel like the course is going over a lot of stuff you already know, but that's good.

People often suggest the Head First Java book. I personally learned from the official Java Tutorials, which were provided by Sun at the time, but I think they are still pretty much the same (just updated for newer versions of the language). I think self-learning is the way to go though. You get to learn at your own pace, and you can spend more time on concepts that might not come easily to you.

EDIT: Also, since the course is called OOP with Java, you'll want to study the Classes and Objects trail pretty heavily.

u/CatfishApocalypse · 2 pointsr/UBC

Caveat: Book is for Java 6 and not Java 8, but I doubt that will matter much for 210. All of the basics will be in there, and they haven't changed since then.

u/melancholiclabs · 2 pointsr/Drugs

Read a lot of books. Everything is usually available as a pdf on the internet and the ones that aren't are $10 to rent on Amazon. Here's the ones that I've read that relate to this project.


u/topshelf89 · 2 pointsr/java

I recommend the head first java book It would help a lot to read through some of it before starting your class, or while taking your class. The whole Head First series is great and an easy read. It will make some of the trickier programming concepts easier to understand.

u/TheGoddamBatman · 2 pointsr/java

Head First Java. It's a book, so it's not free. But it's good, if a little basic. If you want to actually learn Java you will need to spend some actual time.

I'm sure your company will let you expense it.

u/ApathyCorps · 2 pointsr/Android
u/cheerfulloser · 2 pointsr/learnprogramming

Actually, I am helping out a friend fresh out of school with his programming :-)

I recommend starting with a good beginner's book in the programming language of choice. Such books walk you through the basic steps - from getting set up (installing IDE/Compiler) to writing the first program that prints "Hello World".

For Java, I highly recommend "Head First Java"

In fact, all "Head First" series books are written in an engaging way (lot more pictures, liberal use of humor/puns). The style/language of these books might feel a bit silly to some but it's way better than the dry/dull language of most books that instantly bore the readers.

Also, whatever book/tutorial/online class you choose, make sure that you type all the code out and run the program. Just reading a chapter through is a terrible way to learn. You won't remember it beyond a day or two. Yes, it's slower to type the code samples/exercises out but you'll understand it much better that way.

u/MisterSmoothOperator · 2 pointsr/learnprogramming

I've heard really good things about this text if you'd like to give it a shot.

I'm aware it isn't face to face but just thought I'd throw in my $0.02.

u/zangof · 2 pointsr/learnjava

I have found the Head First C# book is really good and has a nice mix. Have not tried the Java book but think it should be along the same lines.

u/pragmatick · 2 pointsr/java

The other answered enough abuout 1&2. Apart fom recommending Head First Java I'd advise you to go to Coding Bat and try to solve at least the beginner puzzles there. We got a student here at work who learned (or should've learned) Java in university but the professor was so stuck on high minded patterns and theoretical stuff that none of the students actually learned a bit of coding. Those puzzles are perfect for getting to know strings, loops and all the beginner stuff that you should know inside out. And depending on what you do at uni help you with your exams a lot.

u/IronicFerrousWheel · 2 pointsr/cscareerquestions

Personally, I recommend the book: Head First Java.

u/ThisLooksLikeReddit · 2 pointsr/learnprogramming

My CS study advises Head First Java, which is a great book with many code examples and exercises, while not being your default "page full of text"-type of book.

u/Sokar1723 · 1 pointr/IAmA

I was trying to keep my comment brief so I realized it was going to sound much easier than it actually was. You are very correct, it took a ton of work and I was very motivated. I would love to elaborate a little more.

First when I committed to really take it serious I already knew how to program, but my skills where REALLY rough. My code was horrific, but it didn't matter because it was my own little hobby. So the first thing I knew I had to do was actually study the basics and good practices. I bought this Java book,, and I absolutely loved it. I just consumed it cover to cover.

My days were very busy. At my current job I typically worked 50-60 hours a week, so all my studying happened in the evening and late at time. It's hard to say how much time I put into studying, but it was all I did outside of work. I never really thought I was wasting my time. I had a unnatural belief that I would be able to turn these new skills into something useful.

After I finished that book I moved on to making my first Android app. It was a rewrite of one of the Python programs I created. I didn't buy and special books for this. The problem with the mobile field is that the technology was progressing so fast that books became outdated quickly. I did all my Android learning from Google searches and StackOverflow. I was in love with developing. At this point It was very common for me to work until 2-3am and I would be getting back up at 5am to get on the road for my current job. It's actually really crazy how you body can get use to this after you do it for an extended period of time. Of course I realize this wasn't healthy at all, but in my mind I would only be doing it until I could make it my profession. I never doubted myself that I wouldn't make this a reality.

After my first Android app I created another one that is the app that was for a niche market that I still work on to this day. Within three months this app had over 30k users and I was getting a ton of requests for an iOS version. I knew I didn't have time to teach myself iOS dev and continue to improve my Java/Android skills, so I kept pushing it off.

So now I really felt I had markable skills. I figure if I could do something that made someone else money, I'm hirable. But the problem was how do I convince someone that I could do this. I never went to College so you have to prove your worth in other ways. Luck have it there was a software development company in the small town I lived in, and I decided I wanted to work there, but how!. That is when I came up with the idea that I would pay them to make the iOS version of my successful Android app. My plan was simple, I would impress them with my Android app and what I didn't all on my own and during the development process I would be there as much as they would allow letting me work along side of them. I figured by the time they were finished they would want to hire me. Guess what...

They hired me! I successfully did it. I was so elated. I was making really good money doing what I currently did, so I took a 50% pay cut. This wasn't easy since I have multiple kids under the age of 5 at the time and my wife was stay at home. My wife was absolutely amazing during this change and I owe so much to her supporting me.

In all it took me about two years to get to this point. It took me about another 2 years to get to making what I was before the career switch. The rest of the story isn't probably as interesting as getting to this point. Basically I started teaching myself iOS development right away among other other types of development.

u/TheEffortless · 1 pointr/javahelp

You're welcome!
Here's the amazon preview link

u/michaeltpb · 1 pointr/compsci

Seems like it goes from types and operators through to multithreading. If you're set on learning Java first (though I'd suggest C or Python) then I suppose it's not a bad place to start since I think a lot of Java books would assume some previous programming knowledge. Personally, I liked since it was quite an easy read but I think that one assumes too.

You might find /r/learnprogramming has a lot of useful stuff for you.

u/tomkatt · 1 pointr/sysadmin

I started out with "Learn Python the Hard Way" (link). I'd probably still recommend it as a basic learning resource, but you'd be better off learning Python 3 now. Py2 is going the way of the dodo eventually. Maybe "Invent With Python" is better now.

While doing LPtHW, I also interspersed it with doing the Google Python class. After those, I dicked around for a bit, made a few web scrapers just for fun, to download some webcomics I was trying to catch up on at the time, and eventually also made a scraper to pull the full text of the online web serial book Worm, so I could convert it to mobi and read it on my Kindle.

After all that I felt pretty comfortable with Python, so I decided to try something different and dug into Java for a bit with the University of Helsinki MOOC and various documentation, books, and so on (Official Oracle docs, Headfirst Java, and just a whole lot of Googling for info).

Turns out after all that, I hate Java. Go figure. Okay, hate's a strong word. It's actually a really cool language, but sucked the joy out of programming for me, for reasons that are still unknown to me. So I went back to Python, got a cheap VPS on Digital Ocean, and cobbled up a quick and shitty website with Django. Then I blew it up, and did it again, but with Flask, to make a simple, very basic blog page. That's kind of just sitting now, not doing anything. Dunno if it's even still live, I haven't been on it in months, so the payments may have lapsed (edit - holy crap, it's still there, heh. We must have paid for six months or a year up front or something). No biggie for now, I can always do it again later. I also converted one of my small older scraper projects to Python 3 at some point just to make sure I had an idea of the differences.

That's about where I am at the moment. I've spent the last several months getting comfortable in the Linux world at home, first on Mint and now Ubuntu after needing to install a new SSD. I have KVM set up and am running a few VMs now and again, trying to set up a dhcpd and named server so I can set up a VM-hosted PXE boot machine for shits and giggles, and then see where I can go from there. It's been a blast so far, and equally a pain in the ass, but nothing worth doing so far has been easy, so there it is...

u/MDeLaCruz111 · 1 pointr/swift

Headfirst Java is an excellent book that would teach you the basics of what OOP is, how, and why they work. They are iOS articles out there like Raywenderlich that would teach you the OOP concepts but honestly; I believe this book would teach you in a way you would want to learn them.

Also as for Algorithms the best algorithm course I have ever taken was from Coursera, Algorithms part 1. With the headfirst Java book, you should proceed with this course nicely. Cracking the code interview book as well would be great after learning the algorithms/data structures fundamentals.

u/FreelanceSocialist · 1 pointr/AndroidQuestions

Head-first Java is really easy to run through. Hello, Android is a good primer, though I kinda skimmed a lot of it. After that, maybe Java in a Nutshell and Android in Action to supplement the Cookbook?

u/techtechtock · 1 pointr/java

I just started learning Java and found Head First Java very helpful.

u/jfray · 1 pointr/learnprogramming

I was strongly recommended by my lecturers in university to get a text book, its great for referencing and is something you can pick up quickly, usually with working examples. This one is one of the best all rounders

u/khedoros · 1 pointr/gamedev

Different people have different learning styles.

  • Get a book and work through the whole thing (I haven't used it, but Head First Java seems to be popular. Thinking in Java is a few years old, but it covers Java 6, which isn't far off from Java 7).

  • Find text internet tutorials

  • Take a class

  • Find a video tutorial series you like (I really don't care for videos, so you'd have to ask someone else for recommendations)

  • After learning the basics from some source, "jump in". Seriously, start programming, because you'll need a lot of practice. Find a little project that's just a couple steps above what you know. Do some research into how to do what you're trying to learn, extend your knowledge, then start writing.
u/Shackelbot · 1 pointr/AndroidStudio

to further the conversation on the forum and offer some assistance to everyone out there.

  • Java is indeed a primary component of Android Studio along with XML for formatting and defining actions.

  • Android is unique from java in that you must declare every action you are going to take in the XML file before it can be recognized/run.

  • Java may be a primary language however C and C+ can be used as well (there may be more however this is information learned on passing not actively sought out)

    If you do have a beginner textbooks worth of knowledge on Java then I would recommend starting with Android Application Fundamentals
    and familiarize yourself with the content or use this as a reference.

    if you are new to programming and you want to get started with learning Java then I would recommend (again) Head First: Java 2nd edition, this book is very good if you want a k-12 approach in that it isn't word heavy and it makes you find the solution more often than not.
    if you do love word heavy content and love taking notes then I would recommend: Core Java Volume I--Fundamentals (9th Edition)

    free pdf versions of both books can be found so please do not limit yourself.

    Thank you for taking the time to read and please Never stop moving forward.

    edit:spellcheck and link added
u/BasicKeeper · 1 pointr/java_programming

Here's a link to a pdf version of Head First Java. I'm relatively new to java and I think it's a fantastic book.

If you want to purchase it on amazon it can be found purchased for $20

u/Gybe · 1 pointr/AskReddit

Honestly I'd just stick to one language to begin with and try to get as close to mastery with that language as possible. Learning two at once will slow you down as you get confused by the different semantics for each language.

I would probably recommend Java as you seem to have learned some already and it is a great starting language. Also most of what you learn through Java can be applied to most modern languages.

In terms of effective ways to learn, well that varies, I did it with the API and a lot of trial and error, some prefer a book. I hear a a lot of good things about the Head First books. Either way your goal should be to write as much code as possible, when you get proficient head over to sourceforge or codeplex and start contributing to an open source project.

Best of luck.

u/rosshettel · 1 pointr/androiddev

Back in my AP computer science days in high school, Head First Java was a great book. Really breaks down the topics and explains them very well. Here's an amazon link

u/red_derekh · 1 pointr/Android

Second the site. The android documentation is fantastic and will get you right up to speed.

I've been doing some Android development since around April. I have experience with C, a little Java, assembly, and python and started my Android learning with the Head First Java/Design Patterns books.

There a little childish in some respects because of the games/exercises, but I found the material and coverage was quite good.

I found knowing about threads and the protection of data through mutexes and semaphores was really helpful to understand the Android UI model.

Good luck. Have Fun.

u/njoubert · 1 pointr/compsci

I would suggest that the carlh programming guides is not a bad idea then!

I would heavily suggest learning C well - this is a language that was designed to stay close to the hardware while being portable, and is a very small language. So, buy a copy of the K&R Book, ever C programmer has one.

Then, Patterson's book is a tome for computer engineering. It'll show you assembly, all the way down to NAND gates.

I would suggest you start by watching and working through Berkeley's CS61C course. It's the logically second course in CS, and after a quick overview of C it dives into the machine itself. Website here, videos here. Also, Dan Garcia is an excellent lecturer.

Once you have all the machine details down, you'll probably feel hampered by your actual program wizardry. This is where you start looking into algorithms and data structures. Your go-to guide here is probably Cormen's Introduction to Algorithms since it handles both data structures and algorithms. It's definitely more of a theoretical/CS-ey book, so if this is not what you want, then Head First Java will teach you a new language (and learning more languages is one of the best ways to grow as a programmer!) and also do many data structures. In fact, you can get both those books and have the light side and the serious side of programming books.

At this point you should be well equipped to go off in whatever direction you want with programming. Start contributing to open source projects! Find things that interest you and try to solve problems! Being a part of the programming community will be your biggest aid in both learning programming and starting to make money through it. People pay for programmers that they know can deliver, and success in the open source world means a lot, and you don't need to go to school for it to get to this point!

Lastly, many CS/programming folks hang out on IRC. If you have questions, find the appropriate IRCS channels and go talk to people. Good luck and welcome to programming!

u/hellolin · 1 pointr/TrueReddit

This course is too hard for anyone who doesn't know computers, I recommend this book instead:

Actually, any book written by Kathy Sierra, it will literally make your head pop thinking how easy that she made every single CS concept is, even the harder topics like concurrency and references checking and stuff like that.

The one day she decides to write a book on data structures is the day I will shit my pants.

u/GustoB · 1 pointr/computers

It's been a while, but I remember really liking the "Head First" books, like Maybe not necessarily this one, they might have a more generic or rpi one now.

Also, check out They have a Raspberry pi focused bundle ending tomorrow.

u/QAOP_Space · 1 pointr/learnprogramming

Python -

Java -

C++ -

The best way to learn is to practice.... code as much as you can. write lots of small programs (rather than get bogged down and lost in a big idea)

u/cjmarquez · 1 pointr/learnjava

I've bought some udemy courses (not particularly in java) though some are pretty good to at least understand what the technology is or what you can do, I've found that reading the online documentation will provide you the same knowledge (at least for some of the JS frameworks I've studied through the site) while this is not the same for a more complex language like Java, I would suggest you to take the MOOC listed in the tutorial section of this sub, as for books I would say "Head First Java" and one that I'm currently reading and have helped me to understand some of the language concepts better "Core Java Volume I" for fundamentals and volume II for advanced topics

Hope this helps

u/YourTechnician · 1 pointr/learnprogramming

ok so at school we worked with Big Java . Good book for beginners but it doesn't seem as comprehensive. Thinking in Java is the best book in my opinion, it is covers an insane amount of topics, but it is more of a challenge in case you have a short attention span (it tends to be more serious than the others, rendering it more boring in return).
Now in case you want something more playful Head First Java is a fun one, it uses pictures , and jokes and uses day to day examples in order to make things stick better to your brain. In case you find that kind of stuff better, than it is recommended, but it does cover less than both of the predecessors.

For later inquires, you can check out the books on this list

u/rahat106 · 1 pointr/learnjava
u/Tezidk · 1 pointr/learnprogramming

Thanks for answering, noone on this sub is actually answering me :(
Thanks for your input!

Yes heres the reviews i saw:

u/Tjinsu · 1 pointr/learnjava

If you're completely new, you'll still need some type of guide or reference, but you can definitely use BlueJ to run your code offline. It's a lot more basic to use, and I always would recommend it to a beginner. Once you get the hang of it, you can move onto a more feature rich program like

As for guides, you could try and find a PDF online somewhere or save tutorial pages from websites for offline use to refer back to. You could also probably pick up a Java book of some sort, or ebook even.

This is an excellent beginners book:

u/Vesp_r · 1 pointr/learnprogramming

I haven't read Head First Java, but I see it recommended often.

I personally learned from reading
The Java™ Tutorials
and Effective Java.

u/FrontpageWatch · 1 pointr/longtail

>Why is it so hard to figure out where to start?
>It's no secret that software development has exploded in the past 20 years. New software startups pop up like dandelions in the spring. It then follows that a lot of people think software development is a good career choice and are afraid of missing out on a lot of great opportunities.
>Software developers are, in general, pretty opinionated. I doubt this is unique to developers, but it gets tiresome when you've dealt with it for years. If we're not fighting over what operating system is better, then it's what language is better. If it's not that, then it's code editors, or databases, or frameworks, or bug trackers, or development processes, or...or...or. It's like we enjoy fighting.
>In a time where more and more people are becoming developers, it's not enough to be just "a developer" anymore. No, to feel superior now, developers need to somehow differentiate themselves from both the non-developer “rabble” and their fellow developers.
>This mentality has lead to more coding languages being developed that purport to "fix" issues with other languages. New frameworks are built to "fix" issues with previous frameworks. And on and on.
>All this leads to a huge amount of choices, opinions, and resources. Naturally, that makes starting to learn, daunting.
>Since I'm a developer too, I'm susceptible to the same opinions and biases that I just railed against. The difference is, I'm right. I'm kidding, seriously, calm down everybody. Here are my suggestions.
>Choose your weapon language
>As someone once said: “the weapon doesn’t make the man.” It’s probably a quote from some B martial arts movie or Dragonball Z, but the philosophy holds true for programming languages. A good developer is a good developer regardless of language. However, you need to start someplace, and if you pick your first language wisely, you’ll drastically shorten the time to hit your goal.
>Picking a language boils down to what you want to do. This is a quick list of general development goals and what language(s) are your best options to get there:
>1. Front-end web development (user interface and interaction): Javascript, HTML & CSS
>1. Back-end web development (services that front-end web apps and mobile apps call out to): Ruby, Python or Javascript
>1. Mobile development: Swift (iOS) or Java (Android)
>1. Windows development: C#
>1. MacOS development: Swift or Objective-C
>1. Operating systems, file systems, embedded systems, etc: C/C++
>Naturally, there are other options for each of these. Javascript is useful for items 1-5, for instance. But the list is a good starting place as-is.
>How to find good resources to start learning
>There are a ton of resources to learn to code out on the web. How do you sift through the chaff and find the real gems?
>Most resources fall into the following categories:
> Books
> Blogs/tutorials
>Books are the traditional go-to resource. Search for your topic and read reviews. Make sure that any books you're considering are new. Languages change and older books could slow your progress.
>A lot of people have gravitated to videos to learn coding and other topics. YouTube is the first place most people look. Fair warning, this is going to turn up a bunch of crap. Look at how many subscribers a given instructor has, and watch some videos to see if their style and method works for you. Another possible issue is that because video is more difficult to update for new versions of a language (or corresponding tools), some videos might be outdated.
>For blogs and tutorials, a simple google search like "best python tutorial" or "best swift tutorial for beginners" is a great place to start. As with videos, you'll have to try a few to see how they work with your learning style.
>Online courses are the newest resource on the scene. Codecademy is one that a lot of people find immediately. However, after I talked to a lot of people who tried it, none really thought it did a good job. Free Code Camp or The Odin Project are both highly regarded for web development. Udacity, Coursera, Udemy all have courses in different genres. Each has reviews so you can compare and only look at ones that helped others. My specific examples follow in the next section.
>Where you should start, specifically
>Each development goal in the above list is different enough to require different starting points. I’ll list the place that I’d recommend you start for each one. I have not personally tried all of them, but have come across them when doing research. There also might be better ones, and so if you know of any, let me know and I’ll update this list.
>1. Front-end web development: Free Code Camp
>1. Back-end web development: Ruby (for Rails), Python (for Django), Javascript (for Node)
>1. Mobile development: Swift Lynda’s Swift Essentials (check your local library to see if you get a free Lynda account with a library card) or Flatiron school’s free Swift course, Swift Programming book or Java Head First Java, University of Helsinki’s MOOC
>1. Windows development: Head First C#, Pluralsight’s C# course
>1. MacOS development: Cocoa programming for OS X, or the same courses for mobile Swift
>1. Operating systems, filesystems, embedded systems: C++ How to Program book, C++ Tutorial for Complete Beginners
>Once you pick your language and starting point and you start learning, some things will be obvious, but others will be difficult to understand. You’re going to run into trouble and with concepts and code errors. That’s normal. We’ve all been there. Getting unstuck takes practice too.
>How to get unstuck once you’ve started
>Once you start learning to code, you're going to run into problems that you don't know how to solve. This is normal and part of the process. You don't really learn unless you struggle through it. That said, you won't always be able to move forward without some help. So how do you find that help?
>First off, forget books. They aren't a great place to start here, because the number and types of errors they can cover is so small.
>Online is the easiest place to find help. Most devs look for solutions on StackOverflow or just google the error message (if they have one). Other solutions are to find newsgroups or forums dedicated to the language you're using.
>How to use Google to get unstuck
>When you first try to google an answer to your problem, you're going to run into the issue of what to search for. Experienced developers are really good at this part, but unfortunately, it's hard for beginners, who need it the most. So here I'll give you some expert hints on how to improve your search results.
>1. Always include the name of the language you're using. If you're using a specific tool, database, or framework, include that as well. Don't include all of them, just the ones that you believe are relevant. This will take practice.
>1. If you're getting an error message, include that in quotes. Edit the message to contain only the core of the message so it doesn't reference any files, classes, path or filenames that are specific to your program or computer. The trick here is to make the error message as specific as possible while still being general enough to apply to others who are using the same language/tool/etc. but in a different context.
>1. If you're working through a publicly-published problem from a book or course, add that information to the search.
>1. Explain what you're trying to do, with the fewest words. This is tough for developers of all levels. For a beginner, you may have trouble coming up with the right terminology. This is where the books, tutorials, and course materials come in handy. They should use the right language if you're doing something similar to what's covered in them. If not, you're going to need to try some different wording. Remember, other beginners are going to be having problems too and might explain the problem the same way.
>Here are a few examples I’ve used (minus the quotes):

u/cj1m · 1 pointr/learnprogramming

The free course on Udemy by John Purcell is a good place to start - . If you are considering reading a book, I would recommend Head First Java - . Once you get the fundamentals of programming, looking through documentation on the Oracle pages should be much easier!

u/amazedballer · 1 pointr/java
u/Bizkitgto · 1 pointr/iOSProgramming

This might be the best thing, get your hands dirty then learn as you go. I can easily see myself taking all these courses (which I want to eventually) but I'd also like to get into iOS development while I am still hungry, you know what I mean? I just want my learning to be more precise and directed, and not spend time on things I don't really need to know. A lot of people on reddit seem to have enjoyed learning Head First Java, I might just go that route with and watching some of the CS106A lectures (I don't care that it is in Java, I am more interested in learning OOP for iOS). It doesn't look like CS106B teaches OOP at all.

u/funk_transcender · 1 pointr/casualiama

Hmm that's a hard one.

Not Java specific, but more than anything I'd tell them that they should just try to code as much as possible and work on a variety of different projects rather than just reading. Practice, practice, practice. Make use of resources like StackOverflow when you get stuck, and get good at Googling your problems/figuring out the right way to phrase a query, etc. Learn from your mistakes and try to understand things on a deeper level conceptually, etc. A lot of this is common sense but it makes a big difference. There's way too many people I know who seem to have a serious aversion to this for no reason and it holds them back big time. Even just reading the compiler errors - a lot of people for whatever reason just seem to switch off and assume it's unintelligible when really it's usually telling you in pretty certain terms what's wrong with your program...

If they don't have any previous programming experience I probably would recommend Python over Java.

In terms of Java-specific stuff I mostly learned from the Java docs and through trainers at my previous work place. I also used this book:

Honestly though if you don't have access to any kind of training I'd probably sign up for the codeacademy course. I haven't used that specific course but in general it's just way easier to learn when it's interactive, rather than sitting down and going through a book chapter by chapter. I did that for C++ and it was really boring and took at least 3 times as long as it would've done if I had some kind of interactive course. I think books are good for reenforcing concepts, or getting a more exhaustive understanding of concepts you already have, but usually when it comes to retaining information I need to actually be able to use said concept in some practical context to remember it and appreciate it. I'm not sure if I'm making sense.

Compiler wise I'd just use the most up-to-date runtime environment from Oracle... I'm guessing you mean IDE? I use Eclipse but for beginners IntelliJ or netbeans might be better. Or even just a standard text-editor at first and compiling through the command-line. Any good tutorial would cover all of this.

Really none of this actually matters. It helps, but the big thing is just sitting down and coding and learning through experience. Any online tutorial in the first few pages of a google search result will do if you stick to it and try to create your own side-projects.

u/tripex · 1 pointr/investing

I'm a software developer and it sounds like this is going to be a very simple app. I recommend doing it yourself, it will cost you much less than $400, you will learn to do apps and be able to make more and sell them and you will have complete control of your source code.

These two books and a month of studying and playing around later and you've got your app.

OOoor... check out

u/ewiethoff · 1 pointr/learnprogramming

As unapersson says, the Java book is garbage. That's because intro programming books by textbook publishers for use in schools are basically garbage. You can tell it's a school book because it costs a fortune and it provides resources for the teacher.

The Head First Design Patterns book is fine, but you kinda need to know Java first because its examples are all in Java. A combination of Head First Java (although it's a bit old), the official Java tutorials (these are up-to-date), and the online Java docs (these are up-to-date) will give you a decent foundation in Java.

u/munk77 · 1 pointr/learnprogramming

I had a co-worker that wanted to learn java coming from a Visual Basic background and this book did the trick. Head First Java -

u/asdf-user · 1 pointr/mac

Hm, probably not. Obj-C is used for developing iOS/OS X Apps. But I have no clue what to use in Engineering, maybe C or C++

Infos about Alfred here. It's basically a better Spotlight Search, to find/launch Apps, find files, quick google search, calculator, etc

About Objective-C: Take a look at the Big Nerd Ranch Guide

For Java: Head First

C: The C Programming Language

EDIT: iTerm2: Terminal replacement, I use it mainly for the hotkey window
and Cheatsheet: Hold command to get a list of all shortcuts for the active App

u/fakeplasticdroid · 1 pointr/learnprogramming

I strongly recommend Head First Java. It's written in a very laid-back style and is very conducive to learning.

u/B_Master · 1 pointr/compsci

I always recommend this book for a self-study beginner.

Edit: To clarify, this is a programming book, not a CS theory book. Not sure which you're looking for, but learning programming now most definitely will help you with your future CS classes.

u/hadihaha · 1 pointr/javahelp

My experience with Java textbooks is the sum total of two, but i did like Head First into Java.

u/PrismPoultry · 1 pointr/learnprogramming

Find some modding tutorials and try to do them together. When he gets stuck or sees something he doesn't understand, you guys can research it and learn about it.

IF he wants to actually be a programmer, buy him a java book and have him work through it. Head First Java is excellent.

You have to find out if it's just about modding minecraft that he seeks or if he wants a more overall knowledge of software development.

u/LyndonArmitage · 1 pointr/java
  1. I use IntelliJ at work and home, not just for Java but for a lot of other things, it has the fastest and best intelligent auto complete I have seen in an IDE and supports a whole tonne of frameworks and programming languages, it's also got some kickass keyboard shortcuts and a nice dark skin.
    However all the main IDEs are good, those are Eclipse, Netbeans and IntelliJ (as far as I am aware). At university you will probably be learning with Eclipse, BlueJ (which I have never used, but is supposed to be educational) or maybe even notepad. If they give you a choice I'd use Eclipse to learn with since it is used by a lot of companies and open source projects.

  2. One thing to watch out for is String comparison using the == operator. The == operator in Java compares memory address and not content of the strings, a quick google search turns up this blog post with some details on Strings in Java. Basically you should use string1.equals(string2) when comparing strings in Java.

  3. Nab a book from your university library or buy one on Amazon/The Book Depository.
    I taught myself it following various tutorials online but the books teach you better practices than those most of the time and are more in depth. Java a Beginners Guide seems highly rated on Amazon and has been kept up to date. When I was at university I saw a few copies of Thinking in Java around but it's a tad out of date now, Head First Java might also be worth a look.
    The videos I used to learn Java were a combination of thenewboston videos (these don't encourage good practices but show a basic way of getting started) and some Java games programming related videos by thecodinguniverse.
    Once you have the basics of Java down, might I also suggest completing the challenges on /r/dailyprogrammer to help get you more comfortable with it.
u/couch_seddit · 0 pointsr/Clojure

I love the book Head First Java

That may be too thorough for you though. It's a great book.

u/WizardTrembyle · 0 pointsr/AskReddit

Scripting languages, like Ruby or Python, are great for learning the basics of data structures, but you'll find that if you pursue a career in CS you'll mostly only use languages like that for one-off scripts or for automating backend tasks. Once you get a good handle on the rudimentary basics of procedural programming, it's important to pick up OOP skills as quickly as possible. This will save you from the trap of always falling back on a procedural mindset, which can be a huge detriment in the real world.

In the enterprise world, the most marketable skill at the moment is Java, like it or not. Oracle has plenty of good tutorials on their own site, but if you've got a few bucks to spare, the Head First book is an amazing introduction to both the language, and OOP in general:

u/aha2095 · -1 pointsr/learnprogramming

There aren't many uses for HTML other than web development and as for the last question read below.

Well what do you want to do?
Web development? W3Schools

Note: There are issues with W3Schools as seen on W3Fools but It's a good resource nonetheless.

If so back end or front end? (Simply front end is client side scripting and CSS/design and back end is server sided scripting, if you need more information about these take a look at some of the links and search Google)

If back end try something like PHP, it's a nice language and is quite straight forward. PHP | W3Schools

Simple installers --> WAMP Server | XAMPP

IDE --> PHP Development Tools

If front end then really you need to learn JavaScript. W3Schools | Mozilla resources
(JS can also be used for the back end Node.js)

But for both you need to know HTML. W3Schools

Do you want to make computer programs?
Then maybe stick to something like Java. Oracle

IDEs --> Eclipse | Netbeans

Or do you want to do both?

Then Python would be a great start.

Video tutorials The New Boston

Courses Udacity | Codecadmy

Java paid resource: Java headfirst

There are also recommended resources to the right also maybe head to your local library --->

I hope that helps you decide on what you want to do, I would provide more links but I think that should suffice.

And it should be noted that languages are all very similar so no matter what you should be able to apply what you learn easily so just start where you want to and if you want to expand from say web development to programming it should be an easy transition.

EDIT: Added a small amount of information.

u/Brimshae · -1 pointsr/compsci

Well, what do you want to learn?

I mean, if you're looking to code, the HeadFirst books might be worth looking into. Go browse one at your local book store.

Eclipse is pretty cool for writing Java, but I'm sure someone will come along and suggest another IDE.

I haven't tried it, but Python is supposed to be pretty good.

Also, when you're trying to learn to code, do the exercises. Do all of them. Practice doesn't make perfect, but it helps.

Finally, Bucky, aka theNewBoston, is a friggin' boss when it comes to tutorial videos.

u/BigBootyBear · -3 pointsr/learnprogramming

Look for yourself. There is no chapter on operators. There was a chapter about loops, but I did not see ":" mentioned until chapter 5.

u/nlke182 · -5 pointsr/learnprogramming

I went through the new boston stuff and got Head First Into Java. They are both pretty good to get started. Also watch the Stanford series on Youtube its really good.