One of my wife’s cousins is graduating from college in the spring, and she was offered a job doing software development. She called and we spoke about what it’s like to be a software developer day-to-day. When we were done talking she asked me if I had any resources I could share to help her get started with learning about Java development. Here’s what I sent her.
Hey Cuz!
Below are three books that might be of interest to you. I don’t expect you to read all three. Most developers are lucky to read one book a year. These are just suggestions of books you might want to know about. I’d start with Head First Java.
Also, I have listed several concepts you might want to be familiar with. DON’T FREAK OUT! I know it’s a lot of information. I don’t expect you to learn all of that stuff. Just skim it so that if someone says, “we deploy our application on Tomcat,” you will have seen the word “Tomcat” before.
I recommend that you download a copy of the Eclipse IDE, install it, and use it to work through some examples from Head First Java.
Feel free to reach out to me if you have any more questions. You can reach me at this email address or on my cell phone at [REDACTED SON!].
Good luck!
Books
Head First Java, 2nd Edition by Kathy Sierra
If you want to learn basic Java programming, this is where I would start.
Effective Java (2nd Edition) by Joshua Bloch
This is my favorite Java book. I refer to it regularly. It’s the only one I have read cover to cover.
Code Complete: A Practical Handbook of Software Construction, 2nd Edition by Steve McConnell
This book is more about programming in general. Pick up a copy from your library if you can and thumb through it. It might have some interesting stuff in it.
Useful Website
Stack Overflow: http://stackoverflow.com/
This is the largest question and answer site for programmers. It is an invaluable resource if you have programming questions. Here’s a link to my Stack Overflow profile page if you want to see the kinds of questions a web developer might ask.
Concepts
Again, DON’T FREAK OUT! This is just a list of stuff an enterprise Java developer might work with. Just skim some of the web pages and familiarize yourself with some of the concepts if you have time.
- Open Source Software
- The Apache Foundation – They provide a lot of open source software.
- Java Build and dependency management tools
- Java Virtual Machine (JVM) – Every bit of Java code runs on top of a JVM. It’s important.
- Web Servers
- Apache HTTPD – This web server powers most sites on the web.
- NGINX – This web server is great at handling lots of traffic. Most large websites such as Youtube and Facebook make use of it.
- Lighttpd – Similar to NGINX in architechture.
- Servlet Container/Web Container/Application Server
- Apache Tomcat – One of the oldest and most popular web containers.
- IDE (Integrated Development Environment) – similar to Microsoft Visual Studio
- Text Editor – Every software developer will need to use a text editor regularly.
- Vi – This text editor is installed on every UNIX server everywhere. If you find out that you will be working on a UNIX based
platform such as Linux or BSD, these links will come in handy. (Vi reference). (Cute game meant to teach VI commands). - UltraEdit – The text editor I use. It is not free
- Sublime Edit – Another popular non-free editor
- TextPad
- Notepad++ – This one is free.
- Edit+ – Another popular one.
- Vi – This text editor is installed on every UNIX server everywhere. If you find out that you will be working on a UNIX based
- Unit Testing
- Rich Internet Application – A company light Delta probably has a few of these being maintained by internal development teams.
- Revision Control – These applications are used to keep track of changes to software. They are invaluable tools.