Hi all, this is a good matrix to keep track of your skill set as you advance in your field.
Hi all, this is a good matrix to keep track of your skill set as you advance in your field.
Computer Scientist’s Checklist
Tip #1: Java is very accessible and all the following are available for free.
The steps you take may slightly vary depending on your familiarity with Java and its tools.
Google search, good blogs and online tutorials are your friends in setting up the above 6 items. Even with 13+ year experience in Java, researching on Google.com is integral part of getting my job done as a Java developer. As an experienced Java developer, I can research things much faster. You will improve your researching skills with time. You will know what key words to search on. If you are stuck, ask your mentor or go to popular forums like Javaranch.com to ask your fellow Java developers.
Tip #2: Start with the basics first.
Enterprise Java has hundreds of frameworks and libraries and it is easy for the beginners to get confused. Once you get to a certain point, you will get a better handle on them, but to get started, stick to the following basic steps. Feel free to make changes as you see fit.
Tip #3: Once you have some familiarity and experience with developing enterprise applications with Java, try contributing to open source projects or if your self-taught project is non trivial, try to open source your self-taught project. You can learn a lot by looking at others’ code.
Tip #4: Look for volunteer work to enhance your hands-on experience. Don’t over commit yourself. Allocate say 2 to 3 days to build a website for a charity or community organization.
Tip #5: Share your hands-on experience gained via tips 1-4 in your resume and through blogging (can be kept private initially). It is vital to capture your experience via blogging. Improve your resume writing and interviewing skills via many handy posts found in this blog or elsewhere on the internet. It is essential that while you are working on the tips 1-5, keep applying for the paid jobs as well.
Tip #6: Voluntary work and other networking opportunities via Java User Groups (JUGs) and graduate trade fairs can put you in touch with the professionals in the industry and open more doors for you. The tips 1-5 will also differentiate you from the other entry level developers. My books and blog has covered lots of Java interview questions and answers. Practice those questions and answers as many employers have initial phone screening and technical tests to ascertain your Java knowledge, mainly in core Java and web development (e.g. stateless HTTP protocol, sessions, cookies, etc). All it takes is to learn 10 Q&A each day while gaining hands-on experience and applying for entry level jobs.
Here’s an excerpt I found very interesting from John Sonmez’s newly released book, ‘the Complete Software Developer’s Career Guide’. It is a good read and I recommend it.
I think I might try this option, and I think you guys might want to give this some thought too.
CREATE YOUR OWN COMPANY
Many people laugh when I tell them this idea of gaining experience when you don’t have any, but it’s perfectly legitimate.
Way more companies than you probably realize are actually run by a single person or a skeleton staff of part-time workers or contractors.
There is absolutely no reason why you cannot create your own software development company, develop an application, sell or distribute that app, and call yourself a software developer working for that company.
You can do this at the same time you are building your portfolio and learning to code.
If I were starting out today, I’d form a small company by filing for an LLC, or even just a DBA (Doing Business As) form (you don’t even need a legal entity), and I’d build an app or two that would be part of my portfolio. Then, I’d publish that app or apps in an app store or sell it online in some way.
I’d set up a small website for my software development company to make it look even more legit.
Then, on my resume, I’d list the company and I’d put my role as software developer.
I want to stress to you that this is in no way lying and it is perfectly legitimate. Too many people think too narrowly and don’t realize how viable and perfectly reasonable of an option this is.
I would not advocate lying in any way.
If you build an application and create your own software development company, there is no reason why you can’t call yourself a software developerfor that company and put that experience on your resume—I don’t care what anyone says.
Now, if you are asked about the company in an interview, you do need to be honest and say it is your own company and that you formed it yourself.
However, you do not need to volunteer this information.
I don’t think being the sole developer of your own software company is a detriment either.
I’d much rather hire a self-starter who formed their own software company, built an app, and put it up for sale than someone who just worked for someone else in their career.
I realize not all employers will think this way, but many will. You’d probably be surprised how many.
I would like to share something with you all. A platform has been created whereby companies looking for volunteers to work on their Java based projects can post and select applicants. http://www.code4socialgood.org
Code for Social Good is a nonprofit organization in the U.S. We have recently launched a global volunteering platform that provides nonprofit organizations and open source projects with free technical resources. We hope this specialized technical volunteer network could better assist nonprofits and open sources identify potential volunteers, at the same time assist volunteers identify technical projects that fit their interest and skills. It is a good opportunity for Java developers to build real project experience. Please consider register on Code for Social Good! The web site is: http://www.code4socialgood.org
Just wanted to share something with you all. So I came across this java learning road map, which I think is typical of the skills required for a Java developer. I like that it proceeds on a step-by-step basis, and thus, guides those who don't know where to start. However, I'm still trying to figure out what the colors indicate. Not sure why some blocks are colored the way they are.
While looking at the various job postings you would soon come to the realization that everybody and their mama require that you know these building blocks at a minimum — haha :). courtesy of in28minutes.com
Here's another one, presumably more in-depth.
Hi everybody, good morning
I thought I’d share my thoughts before I go about my day.
If you are looking to learn Design Patterns, here are my suggestions. Not that I’m an expert, but you know, this is what worked for me 🙂
I’ve looked at so many books to grasp design patterns and the book that worked for me is, Programming in the Large with Design Patterns Kindle Edition by Eddie Burris. It’s only a couple bucks, and I believe it is so worth it! Trust me, you will not be disappointed. I’ve looked into so many books on this topic, and nobody is more succinct and on the point as Burris is.
Here’s an excerpt from Burris’s book:
Design patterns are NOT distinguished by their static structure alone.
Can you tell me which represents state pattern and which represents strategy pattern?
It is of course impossible. What makes a design pattern unique is its intent? The intent of a pattern is the problem solved or reason for using it. The intent of State pattern is to allow an object to alter its behavior when its internal state changes. The intent of the Strategy pattern is to encapsulate different algorithms or behaviors and make them interchangeable from the client’s perspective. The structure is the same for both solutions.
In addition, I recommend the Design Patterns course on Lynda.com. The course is based on ‘Head First Design Patterns’ book, thus, I recommend reading the book first and watching the videos second. Like, read the chapter first, then watch the instructor on Lynda.com explain it.
Lastly, I recommend using IntelliJ ide. It has a feature that shows the UML relationship of your classes. No eclipse plugin beats this feature. Trust me, I’ve tried them all. You will need the higher edition of IntelliJ which they provide for free for a couple years for college students and professors.
Also look into my previous blogs on design patterns. It is under ‘software development’ tab, under ‘software construction’. They are my notes based on the above mentioned books. It will help a lot too.
Also, if you are a Massachusetts resident, you can access Lynda.com at no additional cost, free. Go here to register for an e card: http://www.bpl.org/general/circulation/ecards.htm
Then, go here, find Lynda.com, enter your ID and password: http://www.bpl.org/electronic/alpha.asp
Also with a subscription for safari-books-online, they provide all the Head First series books.
After much time spent experimenting with so many books, these resources helped me the most. And I promise, it’s going to help you too and you’re going to love it.
Let me know in the comments below if this helps. Thanks!