The beauty of the computer science, software development and engineering industry is that we enjoy sharing. We like to share knowledge, code, talent, and anything necessary to advance technological innovation in our world.
I’m a strong believer in learning by doing. Try to build some things and do some Google queries to fix whatever you break. One of the best ways to learn how to code is to dive in and build something from the ground up. Use the resources available to you to facilitate and expedite your learning process. When you get stuck, stand on the shoulders of the giants who came before you to get yourself back on the road to success. In this chapter, we will take a look at how you can take advantage of your resources to teach yourself how to code beyond what any book or tutorial can teach you.
As humans, we are limited to only accumulating and maintaining a limited amount of knowledge. It is important to realize that the world’s knowledge is infinitely large and that extends to our knowledge of programming languages and techniques. For that reason, the ability to learn is far greater than possessing all of human knowledge at any given moment in time without being able to learn more as it expands.
As you learn and go through your career as a software developer, you’ll have to continue learning. I’ve worked with incredibly smart people from my college professors to my leaders at companies like IBM and they all share two things in common: they’ve had decades of programming experience and they still Google when they get stuck. Further, they are constantly learning new skills and concepts. If they, experienced as they are, are still learning, it’s clear that we all should continue learning.
When I was learning how to program, I decided on a project to build and then took to Google to learn how. This has proven to be the best way for me and a popular method across the industry because others have asked the same questions I’ve sought answers to.
In the Java for Humans book, we will cover every necessary concept of Java to get you up and running. We will step through clearly to help you understand and relate to every concept. However, there may be times when you need more explanation for the concepts that are beyond the scope of the book. In those instances, I may suggest you do further research of a concept on Google when I cannot go deeper. Furthermore, you may find it necessary to get another person’s look at some of the concepts we cover in this book. For those cases, you will need to ask your questions in Google effectively in order to get the right answers. Let’s take a look at effective methods of getting the answers you need.
Often, when you have a question, you simply visit Google and type it in the same way it popped up in your mind:
Google: How do I take over the world?
That query may return some good results, but the results will vary largely. If you want to make sure you get the answer you want or get close enough, you need to provide Google a bit more information. May be instead of the previous wording of your query, you can try this:
Google: How do I build a bank?
You wanted to know how to take over the world, but Google doesn’t know how you want to do that. If you’ve observed the world enough, you may notice that banks have a great stronghold on the world. With that prior knowledge, you’d be better off asking Google how to build a bank. Let’s try another query.
Sometimes, you forget something when you are coding. Sometimes you don’t know how to code something. Let’s say you wanted to learn more about how to make variables. You could ask Google the following query:
Google: how do I make variables?
Again, Google would return many results, but the large majority may not be what you are looking for. This is because Google doesn’t know you intended to learn about Java variables, not variables in other programming languages. A better query may be one that tells Google that you want results about Java along with the type of variable you want to make:
Google: how do I make String variables in Java?
That query will return a much better set of results for you to learn from. Still, what if you spend a whole day coding and end up performing twenty Google queries? Typing out all of those words will be more time consuming than they have to be. In coding brevity is often the key to success and this is true for Googling, too:
Google: make String variable Java
Use the minimal amount of words as you can and forget the question mark. Google is smart enough to know that you want results surrounding String variables in the Java programming language. Now, let’s take a look at the results returned.
At its core, Google is a software company. They built a good deal of the code bases that we all use today, so it makes sense for them to understand that we want to get the best code search results as possible. Aside from Google’s possible bias towards good code results, so many people are programming today that many of the questions you will have will already be answered many times and discussed in depth on forums like StackOverflow. With that said, let’s digest the types of results you’ll receive and which are best in particular situations.
Official Language Documentation
In the case of Java, the official documentation will come from Oracle.com. Oracle maintains the Java language and has the final say on what is right or wrong. Although these guys have the ultimate say on what is right, they don’t have a good way of laying it out for beginners. It’s organized well, but as a beginner, you may be a little intimidated by its layout because it contains more jargon than you may be comfortable with. Nonetheless, if you want a definitive answer to your Java questions, Oracle’s Java documentations is your best bet. This is the case for any other language, too: the official documentations will provide you the most accurate answers. If it’s accuracy you seek, use this search result. If it is comprehension you care for, forums like StackOverflow will serve you well.
StackOverflow.com is the most popular forum for software development related discussions. On here, users can ask questions and receive answers from other users. Those answering questions, have likely ran into the issues of the questions they answer and are experienced in the fields of the questions. Moderators maintain the forum to make sure people are asking relevant questions and receiving the best answers. Users vote on the answers provided by other users on questions and the best answer is selected by the user who posted the question. It is safe to say that at least eighty percent of the questions you, a beginner, will have are already answered on StackOverflow. Google knows this and readily serves you StackOverflow results for your queries. Sometimes, the most popular, or “accepted”, answer may not be the best answer for you, so be sure to look through the other answers and pick the one that best answers your question. This is a good first step in finding answers to most of the questions you will have as you learn a programming language.
Vloggers on YouTube are another phenomenal source of knowledge. If you are brave enough to put yourself on the air for the world to watch, there’s a good chance you know what you are talking about when it comes to coding. If you want to listen to someone explain the answer to your question and show you visually how to resolve any issue, this is a great place to go. Youtube happens to be the second largest search engine, and because Google owns Youtube, you can search your questions in there the same way you would at Google.com. Good ways to judge if a video is worth watching are to scan the comments before watching, look at the up votes to down votes ratio, and examine the amount of views it has in that order.
I, the ModernNerd, publish videos on YouTube to cover programming concepts including those related to Java in a more engaging fashion than others.
Some say the YouTube vlogger killed the blogger. That notion can be argued, but either way, the blogger is still thriving when it comes to code. Bloggers often have the code you need available followed by a thorough explanation of each part of the source code, so the answer to your questions can often be gathered from a blog post. However, be sure to check for any feedback the post may have received from other readers and use that to gauge whether or not the content of the blog is worth listening to. Sometimes, other people will comment praise of the blog article, and other times, people will challenge the validity of the information provided in the blog. This makes your job as a learner easier because you can use this to make sure you are getting the best answers without spending too much time reading.
Remember that, contrary to popular belief, no one ever built anything from scratch and that nobody is self-made. We all need help to get where we want to be. Together, we can all advance the knowledge of society in all that we do. Start by building something and continue by asking the right questions when you get stuck.
In the following chapters of Java for Humans, we will learn everything you need to get started building your very own Java applications. Be sure to use what you have learned in this chapter to research concepts you need more explanations for.
Finally, always be coding. Always be building. Always be learning. Always be teaching. Always be searching for a better way. You may be the one to lead us to the next technological revolution.