The pandemic situation is the point when many people face the difficulties of remote work. It is also forcing more and more students to study at home. How to learn Java and other programming languages at home, when no one is around to watch over you? In this case, you have to acquire not only distance learning skills but time management and self-control.
I’ve got good news for you! You can definitely handle it. I prepared some tips on how to improve self-learning skills based on my experience as a Java self-learner. So, stay tuned to find out what they are.
Let’s face it: many of us have experienced hard times at least once while forcing ourselves to focus on work, studying, or other major activities, and being distracted by the Internet, phone notifications, web, or mobile games. We’ve all been in the same boat.
These days, only a few people can boast of the superpower of being concentrated on the task ignoring all sidetracks.
Back in 2013 Microsoft Corp. conducted a new study and surveyed two thousand participants to measure attention span. It turned out that since the year 2000 people stay concentrated on a single task without interruption from twelve to eight seconds, on average. Quite shocking, isn’t it? For comparison, the goldfish stays focused on something on average 9 seconds.
Whose fault is that? I suggest you look in the mirror to find the answer. We have become so captivated by new technologies, diving into social media posts, games, news, YouTube videos, dating apps and haven’t noticed that we are lacking time for work and study, not to mention simple life pleasures. All these technologies are attacking us all the time. And sad to say, they are successfully keeping us from doing other important things.
Yet, there are a few tips and tricks that still can help us improve self-performance and the ability to stay focused.
First and foremost, start your week by scheduling it. Set a time frame for work and training and make sure you follow your daily plan — only in that case you can succeed in learning at home. Other than that, remove all distracting and unnecessary activities from your schedule.
Let’s start with your phone — it is one of the main time eaters and energy wasters. You first think that five to ten minutes will be enough when opening it to check for new emails or notifications, but soon get stuck there for hours without even noticing. Then, you get back to work or study and can hardly focus on what you’ve done a few hours before. This is where setting a screen time, muting the phone, turning off notifications and even the Internet can help you improve the ability to focus on important things.
Another way to study more effectively is to use specific tools and services, such as distraction blockers, pomodoro technique tools, study apps, habit tracking tools, and much more. Bookmark the following services:
- AntiSocial allows you to take control under your time spent in social media and block distractions.
- Tomighty is a free desktop timer following Pomodoro technique.
- Habit List is a simple tool with an intuitive interface that allows creating new habits.
- Evernote is a good old-fashioned app for your notes and ideas.
Until recently, finding interactive Java (and other programming languages) courses was quite a challenge. Regardless of the good content and a myriad of hands-on tasks the courses boasted, they were still boring and didn’t encourage students to keep up the training.
Everything changed when programmers headed for creating engaging learning programs that would motivate people to learn Java. Today, the number of Java platforms full of interactive coding games, quizzes, and challenges is huge, so students can easily pick the one that meets their needs. Here are a few Java courses that will interest you for sure. I used all of them while learning and as a Java Junior Developer still do it from time to time.
CodeGym is an online Java programming course created using the latest teaching methods, including gamification, visualization, storytelling, etc. It consists of four courses, ten levels each.
The students learn Java with a young robot Amigo in an alternative futuristic reality, which makes training inspiring and motivating. CodeGym is a platform, where students write lots of code from the very beginning. They get access to 1200 practical tasks of increasing complexity to get enough experience needed to land a job.
Codewars is an online platform created by community members to encourage students to practice code challenges called kata. While challenging themselves on kata, programmers acquire different techniques and strengthen their skills. As soon as they progress through the ranks, they get new more complicated tasks.
Cyber-Dojo is another gamified online platform that allows mastering and practicing 30+ programming languages, including Java. Unlike other gamified courses, Cyber-Dojo sets a goal for students to improve their skills rather than finish a game as soon as possible by reaching the final level. All tasks are well-described and come with solution examples. Students can practice coding on their own or join a group session and even compete with others.
CodeChef is a unique platform that hosts programming contests once a month and two smaller programming challenges twice a month. The platform forces specialists to put themselves up for recognition and win prizes and goodies. Other than that, any programming community, including major institutions and organizations, can use CodeChef to run their own contests.
I’ll be honest with you. When I started learning to program, I liked it so much that at first I forgot about sleeping. I had a job, I studied mostly until the early morning hours, slept for about 3 hours and returned to work. This schedule put me under a lot of stress.
Once, when, after a hard day at work and an almost sleepless night, I sat down at the computer to do programming, a question arose in my head: why not give up all this, why am I torturing myself like that? I realized that the programming process no longer gives me pleasure. I decided to think carefully, maybe programming is not mine … And I went to bed. The break lasted several days, I slept well, walked a lot, and thought about my health. And, I must say, I happily returned to programming, slowing down. Paradox: I slowed down, but started doing more! Don’t underestimate healthy sleep and walking.
Sad to say, but few people talk about the significance of well-being and taking a proper rest for learning progress. While a significant factor in restoring working capacity is compliance with the correct schedule, changing periods of work, and rest. However, many of us don’t stick to those patterns and have no idea how to rest — we either work hard or can’t pull ourselves together.
What should you do to achieve that routine? There are no special secrets, and you’ve probably seen these tips on the Internet or heard from your friends. Here are some common recommendations:
- Set aside 7–9 hours for DAILY sleep. Getting enough sleep only on weekends is not effective.
- Get your eating on track. Refuse junk food and pastries, add more veggies, fish, and herbs.
- Do sport regularly. If you are not a big fan of the gym, you can do simple exercises at home and take regular walks breathing fresh air.
Another factor that made me almost quit my learning: at some point, when everything began to work out more or less for me, I began to demand that I jump over my head. I tried to make the code as beautiful as possible, I was constantly looking for new ways to code, new libraries, and classes. I didn’t consider the problem solved if I solved it “primitively”, I was very angry with myself if I could not find a solution … All this is good for growth, but you need to know when to stop! The constant thoughts that I was not good enough and what needed to be done even better did not allow me to budge.
Don’t be a strict mentor to yourself! I know you want to learn Java as fast as possible, but too intense studying may also have an adverse effect. Self-learning consumes too much energy, so consider taking a break, which is primarily important for your mental health. You can spend this time walking around the streets, working out, meditating, reading books, etc. Avoid checking your phone — that activity doesn’t count as proper rest.
Habits are literally everything, and learning is no exception — with daily practice and the right mood, you can make this habit stick. Despite popular belief, it takes on average around two months to create a new habit. Herewith, some people need only 18 days for a certain behavior to become a new habit, while others — over 250 days.
At first, I was very shy about asking questions. It seemed to me that they would laugh at me and say that my questions were stupid. To be honest, such a development of events is possible, however, there will always be those in the programming community who will help you!
Teaching yourself to code requires spending literally eternity at the computer, which sometimes makes you lose touch with reality. While self-education may be the best way to master programming skills, outside help is never superfluous.
You can reach other developers, attend all sorts of tech talks, hackathons, and startups, or visit online forums, such as:
- GitHub is a community that allows specialists to share their projects with others, and attract recruiters.
- StackOverflow is a Q&A platform where both beginners and skilled developers can make the most of, finding answers to coding questions, sharing mastery, and finding a job.
- HackerNews is a social news website focused on computer science, attracting programmers, hackers, and other technologists interested in the latest IT news.
- SourceForge is a web service that allows software developers to keep track of free and open-source projects and manage them.
Other than sharing knowledge and finding answers to your toughest coding questions, you can also find a mentor on these forums. The importance of having a coach during a programming journey is often underestimated, as they can provide strong support and emotional encouragement.
You can always turn to GitHub, Stack Overflow, and SourceForge communities, where many programmers are willing to help others and become mentors for beginners. And when you feel confident in programming, pass it on — return to the community to give a helping hand to novice developers.
When you find yourself studying at home, you may wonder how to learn Java without someone around to watch over you and stay sane. Although self-learning causes associated difficulties with time-management and the ability to schedule your day, it is still a habit you can make stick. Moreover, with this list of tips, you can significantly increase your self-efficiency in learning Java. Let me know how it goes when you try the recommendations in practice.
First published on JavaRevisited.