10 Bits of Advice for New Software Developers
In all the questions old hand developers get from newbies, one of the popular themes is “What to do next?” More specifically, people want to know what else to learn, what else to read, how to get practice writing software, how to find work, and other questions of that kind. Most old hands are flattered to be asked, but they’re reluctant to think of themselves as authorities on such matters. No two people give you the same answers to these questions, and if you ask enough people you’re sure to find disagreement.
This article contains ten pieces of advice for new software developers, but do take them with a grain of salt. In fact, let one overarching bit of advice determine how you approach each individual piece of advice. That one overarching piece of advice is as follows:
Compare any advice that you get with your own intuitions.
Collect opinions. Talk to people about the issues. Try things and, if they work (or even if they don’t work but they show some promise), keep doing them. If they show no promise, try other things. And sharing is important. Don’t forget to share.
How long does it take to learn Java?
The answer depends on you — on your goals, on your existing knowledge, on your capacity to think logically, on the amount of spare time you have, and on your interest in the subject.
The more excited you are about computer programming, the quicker you’ll learn. The more ambitious your goals, the longer it takes to achieve them.
But remember that there’s no such thing as “knowing all about Java.” No matter how much you know, there’s always more to learn.
Which books should I read?
Funny you should ask! The For Dummies series has several books devoted to Java, including:
Beginning Programming with Java For Dummies,
Java For Dummies
Java Programming for Android Developers For Dummies.
Each book starts from scratch, so you don’t need to know anything about app development to read any of these books. But each book covers (roughly) twice as much material as the previous book in the list. So, for example, Java For Dummies goes twice as fast and covers twice as much material as Beginning Programming with Java For Dummies. Which book you read depends on your level of comfort with technical subjects. If you’re in doubt about where to start, find some sample pages from any of these books to help you decide which book is best for you.
By the way, if Android is your target, we can recommend Android Application Development All-in-One For Dummies. This book has a few, fast-paced chapters on Java (once again, starting from scratch) but concentrates mostly on techniques that apply to Android app development.
Are other books (besides For Dummies books) good for learning Java and Android Development?
Yes. The Beginning Programming For Dummies authors would love to recommend some of them, but they say they’re not conscientious enough to carefully read and review other peoples’ books.
Which computer programming language(s) should I learn?
The answer depends on your goals and (if you plan to work as a developer) on the job opportunities where you live. The TIOBE Programming Community Index provides monthly ratings for popular programming languages. But the TIOBE Index might not apply specifically to your situation. In January 2014, the Haskell language ranks only 43rd among the languages used around the world. But maybe there’s a hotbed of Haskell programming in the town where you live.
What other skills (besides computer coding) should I learn?
No learning, no matter how impractical it might seem to be, is ever wasted.
If you insist on a more definite answer, make sure you learn about databases. Database work isn’t necessarily coding, but it’s important stuff. Also, read as much as you can about Software Engineering. (Software Engineering is the study of techniques for the effective design and maintenance of computer code.) Don’t be afraid of math (because learning math stretches your logical-thinking muscles). And, whenever you can, hone your communication skills. The better you communicate, the more valuable your work is to other people.
How should I continue my learning as a software developer?
Practice, practice, practice. Take the examples you find while investigating Java and think of ways you’d like to change the code. Add an option here or a button there.
Find out what happens when you try to improve the code. If it works, think of another way to make a change. If it doesn’t work, search the documentation for a solution to your problem. If the documentation doesn’t help (and often, documentation doesn’t help) search the web for answers to your problem. Post questions at an online forum. If you don’t find an answer, put the problem aside for a while and let it incubate in your mind.
Remember, you don’t learn programming by only reading about it. You have to scrape some knuckles writing code and seeking solutions. Only after trying, failing, and trying again can you appreciate the work involved in developing computer software.
How else should I continue my learning as a developer?
Find like-minded people where you live and get together with them on a regular basis. These days, there are tech user groups in almost every corner of the globe. Find a Java user group that meets in your area and attend the group’s meetings frequently. If you’re a novice, you might not understand much of the discussion at the meetings, but you’ll be exposed to the issues that concern today’s Java developers.
Look for more tech groups and attend their meetings. Find meetings about other programming languages, other technologies, and other things that aren’t solely about technology. Meet people face-to-face and find out what topics will be in next year’s books.
How can I get a job developing software?
Do all the things you’d normally do when you look for a job, but don’t forget about the advice in the previous two paragraphs. User groups are great places for networking.
Go to meetings and be a good listener. Don’t think about selling yourself. Be patient and enjoy the ride.
I still don’t know what to do with my life.
That’s not a question. But it’s okay anyway.
Everyone has to make ends meet. If you manage to put food on your table, the next step is to find out what you love to do. To do that, start by finding the best match between the things you like to do and the things that help you earn a living. Compromise if you must, but be honest with yourself about the things that make you happy. (Of course, these things shouldn’t make other people unhappy.)
Finally, be specific about your likes and dislikes. For example, saying “I’d like to be rich” isn’t specific at all. Saying “I’d like to create a great game” is more specific, but you can do better. Saying “I like to design game software, but I need a partner who can do the marketing for me” is quite specific, and makes a very tidy set of goals.
How do I get to Carnegie Hall?
Practice, practice, practice.