[Java improvement case] How to reach the limit of self-study and beyond

Reference site: [Java improvement case ⑨] Limits of self-study and how to reach the next level

[Java improvement case ⑨] The limit of self-study and how to reach the next level

Introducing what kind of wall a man in his thirties who learned Java by himself encountered while learning programming, and how to overcome that wall.

Start programming after hospitalization

The reason I started programming was hospitalization. I used to run in the neighborhood every day as a hobby for jogging, but one day I fell and broke my knee while running in the mountains. I had some spare time after being hospitalized for about two weeks, so I decided to try programming that I had been interested in for some time.

The first programming language I worked on was Java. I decided Java on the advice of a friend who graduated from the graduate school of information department and got a doctorate. I heard that Java and C are good for large-scale system development to some extent. I didn't plan to do a project that would write more than a million lines of source code, but I wanted to write a program with tens of thousands of lines, so I chose Java. I glanced at a C language book at a bookstore, but I decided to use Java because it seemed to be difficult because of difficult concepts such as pointers.

Study with books instead of school

As a college student at the time, I couldn't afford it. I really wanted to go to a famous school called Digital Hollywood, but I gave up because it was difficult to pay the tuition fee. If I could afford it, I would have gone to school. The reason why the school is good is that the school has instructors who can ask questions immediately when they stumble. Anyone who is new to programming will run into obstacles. In such a case, it would be nice if a solution could be found by Google search, but it is often difficult to solve it and it goes round and round. If you ask someone who can program, you can solve it in an instant, but it takes a day to find out for yourself. ➡︎ Click here for recommended programming schools to learn Java

So I studied mainly books on my own. Of course, I searched Google for the part I didn't understand and tried to solve it. The book I was using for studying was written by Mana Takahashi in the books "Easy Java" and "Easy Java Utilization". It's 2600 yen per book, so it's reasonable for 2 books for a total of about 5000 yen. This author's book is very easy to understand, and it was helpful because he gave me a polite explanation with the feeling that I could reach the itchy place. Every time the sample code came out, I copied it into my notebook. Since no complicated program appears, there was enough space to write it in a notebook. In this way, I learned how to use Java's basic concepts such as class inheritance and methods. It took about a month to master these two books completely.

◯ Recommended books

[Easy Java 5th Edition("Easy" series)]
Used price
¥1,From 235
(2016/3/23 14:As of 06)
◯ Recommended books

Easy Java Utilization 4th Edition("Easy" series)
Used price
¥1,From 275
(2016/3/23 15:At 18)

The next book I arrived at for Java beginners is the "Head first" series of Java books. The book "Head First Java 2nd Edition-Basics of Java Learned by the Head and Body" costs more than 4000 yen, but I was able to read it as Swiss because I am a type with abundant illustrations and understanding with images. .. Looking back, this book was the most interesting to study. Unlike specialized books full of dry and dry cords, there were gimmicks everywhere to entertain the reader. If you are studying for the first time, we strongly recommend using the "Head First Series".

◯ Recommended books

Head First Java 2nd Edition-The basics of Java that you can learn with your head and body
New price
¥4,From 320
(2016/7/25 05:34 points)

Copy the sample code earnestly

Now that I've learned all the Java rules, I've been looking for sample code. I thought the trick to improving was to imitate the great sample code. I typed "Java sample code" on Google, looked at the site displayed on the first page, imitated all the code that seemed interesting, and typed it into my PC. The main sites I used are sites such as "Java Program Sample Collection" and "Love Java 256 Knock". At first, I didn't understand the meaning and typed it in, but every time I typed in a line editor from the middle, I tried to think about the meaning. Then, it became clear how to make a function and the intention of setting variables.

I'm almost frustrated by debugging

With this confidence, I wanted to know how to use Java libraries and searched for the next book. I found a book called "Java Library that can be used in the field" for about 4000 yen.

◯ Recommended books

Java library that can be used in the field
New price
¥3,From 888
(2016/7/25 05:37 points)

I actually wanted to use O'Reilly's best book, called a camel book, but the content was too sophisticated and it was chilling. O'Reilly's books are written for intermediate and above, so even beginners are likely to be frustrated. Caution is required.

From here was the true test. I used this book as a reference to write a program to solve simple math problems, but no matter how much code I write, bugs occur immediately. Debugging was overwhelmingly longer than writing code. I was almost frustrated and asked a friend who has a PhD in informatics, a Java professional, all the time. He solved a bug that I didn't understand in 10 hours in a matter of minutes. I was really impressed with the level of programmer masters.

After struggling with Java for about a year in this way, I finally grew up to be able to write a program of about 10,000 lines. It's still far from a full-fledged person, but it's a big difference compared to the beginning.

Learn tips from a programmer who can

After all, if you write a program, it is absolutely time-efficient to work with a programmer who can. When I'm programming, problems that I can't solve at all even if I think about it by myself come up one after another. At times like this, you can get the job done by working with a programmer who can. Java beginners should study with books and sample code, and then gradually learn from programmers while writing code in practice. It might also be good for a programming tutor. I think that the return will be many times the cost.

[Recommended article] ➡︎ [Java improvement case ⑧] A story about how I learned Java in two months and changed jobs to SE ➡︎ [Java improvement case ⑩] I started programming after I was 30 years old

Recommended Posts

[Java improvement case] How to reach the limit of self-study and beyond
[Java] How to get the authority of the folder
[Java] How to get the URL of the transition source
How to write Scala from the perspective of Java
[Java] Types of comments and how to write them
[Java] How to get the maximum value of HashMap
A memo about the types of Java O/R mappers and how to select them
How to set the retry limit of sidekiq and notify dead queues with slack
I tried to summarize the basics of kotlin and java
Difference between Java and JavaScript (how to find the average)
Command to check the number and status of Java threads
How to derive the last day of the month in Java
How to check the extension and size of uploaded files
[Java improvement case] Experience story of learning Java in 2 months and changing jobs to a programmer
How to mark up search keywords regardless of case and without changing the search source word
[Java] Various summaries attached to the heads of classes and members
[Rails] How to get the URL of the transition source and redirect
How to set the IP address and host name of CentOS8
[jOOQ] How to CASE WHEN in the WHERE / AND / OR clause
From fledgling Java (3 years) to Node.js (4 years). And the impression of returning to Java
I tried to summarize the methods of Java String and StringBuilder
[Java] How to convert from String to Path type and get the path
How to check for the contents of a java fixed-length string
How to get the length of an audio file in java
How to increment the value of Map in one line in Java
[Java] How to use the File class
[Java] How to use the hasNext function
[java] Summary of how to handle char
[Java] How to use the HashMap class
[Java] How to use the toString () method
Studying how to use the constructor (java)
[Processing × Java] How to use the loop
[Java] How to output and write files!
How to determine the number of parallels
[Java] How to set the Date time to 00:00:00
[Java] How to get the current directory
[Java] [Maven3] Summary of how to use Maven3
[Processing × Java] How to use the class
How to install the legacy version [Java]
How to find the tens and ones
How to get the date in java
Output of the book "Introduction to Java"
[Processing × Java] How to use the function
[Java] How to use the Calendar class
The story of forgetting to close a file in Java and failing
[Java] How to get the current date and time and specify the display format
How to change the maximum and maximum number of POST data in Spark
How to find out the Java version of a compiled class file
[Java] Note how to use RecyclerView and implementation of animated swipe processing.
How to get the absolute path of a directory running in Java
I translated the grammar of R and Java [Updated from time to time]
How to create your own annotation in Java and get the value
JDBC promises and examples of how to write
[Java] How to use FileReader class and BufferedReader class
[java] Summary of how to handle character strings
Basics of Java development ~ How to write a program (flow and conditional branching) ~
[Java] How to use Thread.sleep to pause the program
Customize how to divide the contents of Recyclerview
[Java] How to get and output standard input
[Java] Summary of how to abbreviate lambda expressions
I compared the characteristics of Java and .NET