<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: John Selawsky</title>
    <description>The latest articles on DEV Community by John Selawsky (@selawsky).</description>
    <link>https://dev.to/selawsky</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F133590%2Fc2956bdf-4bd4-4c51-8cb3-870fdfcba4da.jpg</url>
      <title>DEV Community: John Selawsky</title>
      <link>https://dev.to/selawsky</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/selawsky"/>
    <language>en</language>
    <item>
      <title>How Much Java You Need to Get Your First Job</title>
      <dc:creator>John Selawsky</dc:creator>
      <pubDate>Mon, 22 Nov 2021 15:13:06 +0000</pubDate>
      <link>https://dev.to/selawsky/how-much-java-you-need-to-get-your-first-job-254o</link>
      <guid>https://dev.to/selawsky/how-much-java-you-need-to-get-your-first-job-254o</guid>
      <description>&lt;p&gt;How much Java do you need to get your foot in the door as a Java specialist? There is no one correct answer. It all depends on the field you’d like to become proficient in. Whereas Java developers should try to soak in as much knowledge as possible, QA engineers or Android developers can do with just the basic topics. Ahead, I’m going to shed light on the essential requirements for different posts, statistics, and some critical factors that may influence the time you’ll need to find your first job.&lt;/p&gt;

&lt;h2&gt;
  
  
  Must-Have Skills for Any Java Learner
&lt;/h2&gt;

&lt;p&gt;Let’s start with the basics. Learning Java, just like any other programming language, involves everything from building your learning plan to creating your projects and everything in-between. How long does it take to learn Java? It’s a tricky question, and it all depends on your own pace and ability to absorb information. From my experience, I can assure you that an average student can get their first job in 12–18 months, provided that you start from scratch and devote at least 2–3 hours to learning Java daily.&lt;/p&gt;

&lt;p&gt;Upon this time, you’ll be able to write in your CV something like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Core Java (Syntax, OOP, Collections, Generics, Streams, Multithreading and Serialization)&lt;/li&gt;
&lt;li&gt;Core Java + major frameworks (Spring, Hibernate) + Git&lt;/li&gt;
&lt;li&gt;Core Java + SQL and Databases&lt;/li&gt;
&lt;li&gt;Core Java + APIs and Libraries&lt;/li&gt;
&lt;li&gt;Core Java + Testing tools and build tools&lt;/li&gt;
&lt;li&gt;Core Java + Android SDK&lt;/li&gt;
&lt;li&gt;Or, ideally, all of the combos above.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you see, Core Java is the essential thing you should know to get a job since it covers the fundamentals and is a step one for every beginner. Core Java covers not only the basic types, objects, constructions, and principles of the language but also libraries and frameworks, as well as classes for networking, security, database access, and more. From this, we should conclude that Core Java is a must in your portfolio no matter what professional path you’d like to choose.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Do You Want to Become?
&lt;/h2&gt;

&lt;p&gt;Well, what’s the next step? To answer this question, you need to define what you are learning Java for. The answers like “I learn Java just for fun” aren’t admitted!&lt;/p&gt;

&lt;p&gt;In this article, I’m talking about professional success and professional growth in the IT industry. Nowadays, Java is usually used in one of the following ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Java Developer&lt;/li&gt;
&lt;li&gt;Android Developer&lt;/li&gt;
&lt;li&gt;QA Automation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Depending on what you’d like to become, you’ll need a different set of knowledge to start your career.&lt;/p&gt;

&lt;h2&gt;
  
  
  Essential Skills for Java Developers
&lt;/h2&gt;

&lt;p&gt;Speaking about Java developers (by the way, the most demanded specialists in the field), they ideally need to master the following topics to get their first job:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web frameworks&lt;/li&gt;
&lt;li&gt;JavaServer pages and servlets&lt;/li&gt;
&lt;li&gt;Service-oriented architecture/web services&lt;/li&gt;
&lt;li&gt;Essential web technologies like JavaScript, HTML, CSS, and JQuery&lt;/li&gt;
&lt;li&gt;Markup languages such as XML and JSON&lt;/li&gt;
&lt;li&gt;Object-oriented programming concepts and patterns&lt;/li&gt;
&lt;li&gt;Constructors&lt;/li&gt;
&lt;li&gt;File IO and serialization&lt;/li&gt;
&lt;li&gt;Abstract classes and interfaces&lt;/li&gt;
&lt;li&gt;Collections (lists, maps, sets)&lt;/li&gt;
&lt;li&gt;Access specifiers&lt;/li&gt;
&lt;li&gt;Exceptions&lt;/li&gt;
&lt;li&gt;Generics&lt;/li&gt;
&lt;li&gt;Java virtual machine and memory management&lt;/li&gt;
&lt;li&gt;Multithreading and sync&lt;/li&gt;
&lt;li&gt;Dependency injection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And if you’d like to skyrocket your career and quickly grow from Junior to Senior Java developer, you will definitely need the advanced skills described below:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Amazon Web Services&lt;/li&gt;
&lt;li&gt;AI and machine learning&lt;/li&gt;
&lt;li&gt;Hadoop/Big Data&lt;/li&gt;
&lt;li&gt;Mobile technologies&lt;/li&gt;
&lt;li&gt;Advanced JavaScript framework&lt;/li&gt;
&lt;li&gt;Other programming languages&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Android Developers and QA Engineers. Requirements Simplified!
&lt;/h2&gt;

&lt;p&gt;When it comes to Android developers, things get much easier. Yet, they still should know Java Core and some other essential technologies. For example, XML, SDK, IDE, Apis, as well as get an understanding of how to work with different Databases.&lt;/p&gt;

&lt;p&gt;As for QA Automation, you should be fluent in Java, i.e., know Core Java (especially OOP, Collection, FileOperations), be able to work with Testing Libraries (JUnit), and get familiar with IntelliJ IDEA or other IDEs. The other technologies required for QA Automation include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML/CSS&lt;/li&gt;
&lt;li&gt;Selenium RC/WebDriver framework&lt;/li&gt;
&lt;li&gt;Page Object Model&lt;/li&gt;
&lt;li&gt;SQL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basically, the way to Junior QA Automation is shorter than Java Junior Developer, and it’s easy to see why.&lt;/p&gt;

&lt;h2&gt;
  
  
  Now, Adjust Your Learning: Create a Plan
&lt;/h2&gt;

&lt;p&gt;Before delving into the learning process, I highly recommend you start with the plan and draw the learning path that will be comfortable for you. By doing so, you’ll stay consistent and keep the passion for programming at a high level. Hence, the risks of feeling down on yourself and canceling your learning will be minimal.&lt;/p&gt;

&lt;p&gt;As an experienced tutor, I can say that all successful students have a consistent schedule and the plan they stick to. And if you’re unsure where to start, you can find good examples like &lt;a href="https://levelup.gitconnected.com/what-you-should-learn-to-become-a-master-yoda-in-java-59c69207df78"&gt;this&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Besides the plan, you should also set the schedule and time you’ll be able to devote to learning Java daily (be ready to spend somewhere from 1 to 3 hours). Additionally, it’s vital to distribute this time wisely and stick to the perfect theory/practice balance — the 80/20 principle with 80% focused on practice, and 20% on theory is considered to be the most effective for all Java learners.&lt;/p&gt;

&lt;p&gt;I highly recommend you cast aside your fears and get down to writing codes as early as possible. But it’s not necessary to overload yourself with too much theory, especially during the first months of study. Instead, try to learn Java in small portions, and after each topic, nail down your knowledge with practice. It’s something no programmer can do without.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Recommended Sources to Get the Knowledge and Skills
&lt;/h2&gt;

&lt;p&gt;As just mentioned, learning Java involves everything from setting a plan and schedule to reading theory info and writing creative projects. Today, you can find the best tools and resources for mastering your coding skills online rather than offline. Generally, online courses are more affordable and more engaging for Java learners (of any skill level), not to mention they also let you study at your own pace and start practicing when you’re ready for that. Plus, all your codes will be checked within the shortest time possible. A win-win choice on all levels!&lt;/p&gt;

&lt;p&gt;However, with tons of different Java portals on the Internet, it’s pretty easy to get lost in them. That’s why I’ve narrowed down your choice to the most effective sites, in my opinion.&lt;/p&gt;

&lt;p&gt;You may benefit from such online resources with hands-on tutorials as &lt;a href="https://codegym.cc/"&gt;CodeGym.cc&lt;/a&gt;, &lt;a href="https://www.codecademy.com/catalog/language/java"&gt;Codecademy&lt;/a&gt;, and &lt;a href="https://www.freecodecamp.org/"&gt;FreeCodeCamp&lt;/a&gt;. These content-rich websites cover all aspects of the Java programming language and can help you quickly build a practical approach to learning and prepare yourself for coding. For example, CodeGym boasts the aforementioned learning 80/20 principle, with most of its content focused on practice. All of its lessons are well-structured and are made with step-by-step instructions, easily understandable even for complete beginners. In total, the course involves 500+ hours of Java practicing, which should be more than enough to hone your skills and get prepared for your first job interview.&lt;/p&gt;

&lt;p&gt;Besides the said resources, you may also like &lt;a href="http://zetcode.com/"&gt;ZetCode&lt;/a&gt;, &lt;a href="https://coderbyte.com/"&gt;Coderbyte&lt;/a&gt;, &lt;a href="https://www.jetbrains.com/idea/"&gt;JetBrains&lt;/a&gt;, and &lt;a href="https://www.geeksforgeeks.org/"&gt;GeeksforGeeks&lt;/a&gt; portals. Made for programmers by programmers, they include plenty of useful techniques to help you learn Java within the shortest time possible. They also have strong communities where programmers from any corner across the globe can share their own experience and give you the motivation you need. I usually suggest my students try different Java sources to choose the one that suits them better.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;How much Java do you need to get your first job? It all depends on the field you’d like to work in and the consistency of your learning. Try to avoid long stops and stick to daily studying. Also, it’s important to find engaging courses with the right balance of theory and practice.&lt;/p&gt;

&lt;p&gt;If you follow these simple rules, most likely, you’ll acquire the basic set of skills that will help you find your first job in about 12 months. Of course, afterward, you’ll need to continue your learning path. “Everyone can write a screenplay, but not everyone is Shakespeare,” so don’t fear to adopt new skills to become the best in your field. Remember that there are no limits to perfection, and there will never be too much Java since it’s a technology that constantly adapts to new needs.&lt;/p&gt;

&lt;p&gt;First published at &lt;a href="https://levelup.gitconnected.com/how-much-java-you-need-to-get-your-first-job-8c2bb2803d1b"&gt;LevelUp GitConnected&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>java</category>
      <category>coding</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Look Through These Common Java Learning Mistakes To Avoid</title>
      <dc:creator>John Selawsky</dc:creator>
      <pubDate>Mon, 22 Nov 2021 14:57:39 +0000</pubDate>
      <link>https://dev.to/selawsky/look-through-these-common-java-learning-mistakes-to-avoid-2o3p</link>
      <guid>https://dev.to/selawsky/look-through-these-common-java-learning-mistakes-to-avoid-2o3p</guid>
      <description>&lt;p&gt;Are you stuck in the learning root, or do you feel like your Java study doesn’t bring the results you’re craving for? If so, you’re not alone. As a Java tutor, I can assure you that many students make mistakes. It’s ok to undergo the cycle of “trying, failing, and overcoming these mistakes.” However, I’d like to go through the most common Java learning mistakes and the best ways to avoid them. This will speed up your learning process a bit and help you make as few errors as possible on your way. Let’s dive in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Too Much Theory, Too Little Practice
&lt;/h2&gt;

&lt;p&gt;Suppose you’ve already shelled a hefty sum of money on various programming books and your day typically starts with Youtube Java tutorials, but you still can’t succeed. In that case, again, you’re not alone. The most “popular” mistake novice Java learners typically make is that they really believe they should read many Java books and tutorials (ultra-thick, preferably) and only when they soak all the knowledge to proceed with practice.&lt;/p&gt;

&lt;p&gt;This can’t be further than the truth. Ideally, you should consume the information in tiny portions and then hone your knowledge and freshly acquired skills with practice. Try to start coding from your first topic and the first day of your study. Remember that you will never get confident in coding unless you make the practice your daily habit.&lt;/p&gt;

&lt;p&gt;Also, you should adjust the amount of time devoted to theory and practice. From my personal experience, I can assume it’s better to stick to the 80/20 rule with 80% of the learning time spent on training and 20% on theory. As for the whole time devoted to learning Java daily, I believe that it’s better to start slow and spend 2–3 hours so as not to get overwhelmed at the beginning and, accordingly, stay motivated and make the studying process easier for yourself in general.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing Wrong Resources
&lt;/h2&gt;

&lt;p&gt;Many newbies don’t know where and how to start their learning path and hesitate to attend offline or online classes. Then, what courses to choose from a myriad of options? I particularly recommend students to gravitate towards online resources with hands-on tutorials, so-much-needed practice, and interactive lessons but with less expensive fees than offline ones. Among the best web resources, I can highlight &lt;a href="https://codegym.cc/"&gt;CodeGym&lt;/a&gt;, &lt;a href="https://www.codecademy.com/catalog/language/java"&gt;Codecademy&lt;/a&gt;, and &lt;a href="https://www.freecodecamp.org/"&gt;FreeCodeCamp&lt;/a&gt;. These courses cover all aspects of Java and can help you quickly prepare yourself for actual coding. For instance, CodeGym boasts the 80/20 learning principle, with most of its content focused on practice. Plus, all its engaging lessons are made with step-by-step instructions to be easily understandable even for complete beginners.&lt;/p&gt;

&lt;p&gt;Besides the said resources, you may also like &lt;a href="https://coderbyte.com/"&gt;Coderbyte&lt;/a&gt;, &lt;a href="http://zetcode.com/"&gt;ZetCode&lt;/a&gt;, &lt;a href="https://www.jetbrains.com/idea/"&gt;JetBrains&lt;/a&gt;, and &lt;a href="https://www.geeksforgeeks.org/"&gt;GeeksforGeeks&lt;/a&gt; sites that are also full of different useful techniques to help you learn Java as easily and quickly as possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Studying Just for Fun
&lt;/h2&gt;

&lt;p&gt;You know, a certain category of students can’t imagine their life without studying. And in their rage for knowledge, they consider programming just as another hobby they may need just in case. However, hardly anyone can become a successful Java developer without specific aims and understanding what you’d like to do after completing the course. So, first and foremost, you should define whether you need Java for becoming a skilled specialist (Java Developer, Android Developer, or for QA Automation) or creating coding projects for your own good.&lt;/p&gt;

&lt;p&gt;From all this comes the next mistake…&lt;/p&gt;

&lt;h2&gt;
  
  
  No Specific Goals
&lt;/h2&gt;

&lt;p&gt;As just mentioned, no goals mean no success in whatever field you’re going to get your foot in. Set reasonable objectives to keep yourself motivated and happy with every new goal you reach.&lt;/p&gt;

&lt;p&gt;At first, you need to set the main goal — generally, it can be becoming a Java Developer.&lt;/p&gt;

&lt;p&gt;Then, define additional goals or sub-objectives with deadlines for the different stages of learning. For example, it may sound like:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Core Java&lt;/strong&gt;. To get the basic knowledge of Java, you should first read informative tutorials, watch video lectures, and look through articles on Java regularly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Writing code daily&lt;/strong&gt;. Use online courses with an emphasis on practice, where you’ll be able to nail down your knowledge after each topic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Creating real projects&lt;/strong&gt;. Be ready to start some challenges when you feel you’re prepared for them. For example, you can try an engaging and interactive way of practicing — creating small projects like simple apps or games. You can try writing chatbots, aggregators, or games as soon as you’ve got confidence with basic codes. For example, Java students may use the aforementioned CodeGym’s &lt;a href="https://codegym.cc/projects/games"&gt;‘Games’ section&lt;/a&gt; with lots of detailed instructions to re-make popular games like Minesweeper, Racers, Snake, and more. Don’t fear to experiment, and much fun is guaranteed!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Getting ready for a job interview&lt;/strong&gt;. Constantly browse through different websites like &lt;a href="https://www.upwork.com/"&gt;Upwork&lt;/a&gt;, &lt;a href="https://hubstaff.com/"&gt;Hubstaff&lt;/a&gt;, and &lt;a href="https://www.fiverr.com/"&gt;Fiverr&lt;/a&gt; to get a glance at the average salaries of Java programmers, the demand for them, and the requirements to keep up with the everchanging world of programming and to understand which particular skills you need to sharpen.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Overloading Yourself with Information
&lt;/h2&gt;

&lt;p&gt;That just being said, don’t try to reach too many different practicing methods and technologies at once. Learning several programming languages simultaneously is also a big no-no since those who like studying everything popular that pops up usually end up getting totally confused.&lt;/p&gt;

&lt;h2&gt;
  
  
  No Consistency, No Learning Plan
&lt;/h2&gt;

&lt;p&gt;To prevent yourself from getting overwhelmed with new information (even if you’re learning only Java), you definitely need a specific plan which should cover Java Core, coding projects, and optimal programming tools. Without a personal plan, any student risks becoming a lifelong learner with no defined timeframe. That’s why it’s essential to schedule your education and create a comfortable plan for yourself.&lt;/p&gt;

&lt;p&gt;The adequate plan is a pretty important topic that should be explained in a separate post. Fortunately, &lt;a href="https://levelup.gitconnected.com/what-you-should-learn-to-become-a-master-yoda-in-java-59c69207df78"&gt;I’ve already written such a post&lt;/a&gt; to help newbies stick to a clear and concise plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starting Hard
&lt;/h2&gt;

&lt;p&gt;Needless to say, every student absorbs information at a different pace. But, generally, I suggest starting small rather than starting hard regardless of your background and skills. It’s always an excellent idea to sharpen a particular skill to perfection and only then move to another topic. All in due time, my fellow friends.&lt;/p&gt;

&lt;p&gt;Also, don’t overload yourself with too much information and too little time for yourself at the beginning, as you may quickly lose motivation and feel frustrated. Ideally, you should devote 2–4 hours to Java learning daily with 20–40 minutes spent on theory and 1.5–2 hours on practice (always remember to code more than you read). Anyways, programming is not rocket science.&lt;/p&gt;

&lt;h2&gt;
  
  
  Taking Long Breaks
&lt;/h2&gt;

&lt;p&gt;That just being said, you shouldn’t take long breaks. Actually, “daily coding” is a mantra for Java learning at all ages, so don’t make gaps in your education path by any means. If you have a lure to skip a day or two of education, this may easily become a habit and a beginning of “the end.” Keep in mind that Java is a logical chain of different topics, and when you start a new subject, it refers to the previous one, which, more likely than not, you won’t remember at all if you skip learning days regularly. And, naturally, “amnesia” will constantly drag you back.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solo Learning
&lt;/h2&gt;

&lt;p&gt;It’s pretty natural to feel stuck at some point in your Java learning process. But it’s unnatural to fear asking questions and to avoid looking for support. Many students don’t typically ask anything since they fear their questions are rather stupid and their peers will troll them. It’s a big mistake that won’t help you to progress. Bear in mind, it’s ok to get help from different communities like &lt;a href="https://stackoverflow.com/"&gt;Stack Overflow&lt;/a&gt;, &lt;a href="https://github.com/"&gt;GitHub&lt;/a&gt;, &lt;a href="https://slack.com/intl/en-ae/"&gt;Slack&lt;/a&gt;, and &lt;a href="https://www.reddit.com/"&gt;Reddit&lt;/a&gt;. Be sure to give a comprehensive description of your problem, and don’t be afraid to show your code. For sure, you’ll find the help you need and will be able to learn from each other’s mistakes without feeling shy.&lt;/p&gt;

&lt;p&gt;Moreover, if you enter a community, you’ll get the added bonus as boosted motivation. Many successful Java programmers share not only their experience and programming hints but also their lifestyle, valuable suggestions, and support.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping Things Up
&lt;/h2&gt;

&lt;p&gt;Hopefully, now you know all the “obstacles” on your path to successful Java learning. So, let’s review how to fight or avoid them. First of all, try to create an effective plan and minimize distractions. Next, find the engaging resources and adjust the theory/practice balance (no matter what, try to practice every day). Additionally, don’t forget to enter some communities or communities where you’ll be able to find a coding buddy, ask questions, as well as draw inspiration from both green programmers like you and professionals. And, finally, continue learning and advance your skills every day even when you think you’re all set.&lt;/p&gt;

&lt;p&gt;By mixing these educational hints, there is no chance of failure. So, put off all your doubts and fears. Go for it!&lt;/p&gt;

&lt;p&gt;First published at &lt;a href="https://medium.com/javarevisited/look-through-these-common-java-learning-mistakes-to-avoid-43ac7a05a19f"&gt;JavaRevisited&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>java</category>
      <category>coding</category>
      <category>programming</category>
    </item>
    <item>
      <title>How Long Does It Take to Learn Java? A Lifelong Challenge</title>
      <dc:creator>John Selawsky</dc:creator>
      <pubDate>Mon, 22 Nov 2021 14:07:33 +0000</pubDate>
      <link>https://dev.to/selawsky/how-long-does-it-take-to-learn-java-a-lifelong-challenge-3me</link>
      <guid>https://dev.to/selawsky/how-long-does-it-take-to-learn-java-a-lifelong-challenge-3me</guid>
      <description>&lt;p&gt;Are you about to start coding and gravitate towards an easy, reliable programming language that can be learned in a short time and used for creating a plethora of applications and programs? If yes, you just can’t go wrong with Java. But how long does it take to learn Java to become proficient in it? To estimate the approximate time you may need, let’s answer some essential questions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q: What does it really mean “to know Java”?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; Whereas some consider they have already got the hang of coding once they have created their first project, others believe they should become job-ready and get their first offer from a company to treat themselves as developers.&lt;/p&gt;

&lt;p&gt;I believe that the main purpose of learning Java is to get a job as a Java developer. And to motivate you a bit, just browse through popular job websites like Indeed or Glassdoor and consider that the average Java developer earns more than $50.000 per year, and in the USA, the salaries go &lt;a href="https://www.daxx.com/blog/development-trends/it-salaries-software-developer-trends#average-java-developer-salary"&gt;as high as $100.000+&lt;/a&gt;. From this, I can conclude that a starting point from where you’ll be able to say, “Yeah, now, I know Java” is a real job offered to you and a real project made by you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q: What does it mean “to learn Java,” and what resources to use?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; Well, learning Java involves everything from creating your own plan to writing creative projects (no pun intended). Which tools and resources to use is up to you, but my recommendation here is to gravitate towards online courses rather than offline ones. They are not only more affordable and typically more engaging but also very tolerable to any skill level. In addition, online courses let you study at your own pace and proceed with the practice only when you feel you’re ready for this. With that, online sources often boast a user-friendly environment where your codes will be checked immediately — just like a real tutor would do, but faster and cheaper (not to mention many online programming courses are completely free).&lt;/p&gt;

&lt;h3&gt;
  
  
  Q: How many hours per day can you spend learning Java?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; For sure, everyone absorbs information differently. But, roughly, an average student should be able to devote 2–3 hours a day to learning Java. Also, it’s important to adjust your theory-practice balance and distribute your time wisely — try sticking to the 80/20 learning principle with 80% of its content focused on practice and 20% on theory.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q: What is your background? Is Java your first programming language, or you’ve already learned others?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; No denying, those who are already familiar with other languages often learn at a faster pace. However, in order to get a more or less realistic answer to this question, let’s take a complete newbie who is going to study Java from scratch as a basis.&lt;/p&gt;

&lt;h3&gt;
  
  
  Total score
&lt;/h3&gt;

&lt;p&gt;On average, if you have absolutely no experience and have never learned programming languages before, you will need 12–18 months to become a Java programmer (provided that you spend at least 2–3 hours per day). And the key to successful learning lies mainly inconsistency, motivation, a rich database, and, most importantly, a well-thought-out plan.&lt;/p&gt;

&lt;p&gt;Ahead, I’m going to give you an effective learning plan and useful resources that will help you reach your goals with ease and enjoyment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Draw your learning path
&lt;/h2&gt;

&lt;p&gt;As a Java tutor, I recommend newbies stick to the following path:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Get familiar with &lt;strong&gt;Java syntax&lt;/strong&gt; first. Pretty much like learning “ABCs”, Java syntax can give you an understanding of the programming language and how to use words and letters within its structure. Don’t go hard since you’ll gradually absorb Java syntax during practice later.&lt;/li&gt;
&lt;li&gt;Puzzle out &lt;strong&gt;OOP principles&lt;/strong&gt;. OOP is a very important topic and, luckily, not very difficult. At this stage, you may need to read useful books like Core Java or Object-Oriented Analysis and Design, as well as practice OOP concepts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Java collections&lt;/strong&gt; come next. Learn the data structures using the Java collections interface and Map interface.&lt;/li&gt;
&lt;li&gt;After Java collections, it’s natural to proceed with &lt;strong&gt;Java exceptions&lt;/strong&gt; (abnormal situations that you may face during the execution of your projects). Java exception mechanism can significantly simplify bug catching in your future programs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Input/Output streams&lt;/strong&gt; can be quite tricky for beginners but this topic is essential and there is no reason to dally it out.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Algorithms&lt;/strong&gt; are not crucial for a newbie, but I suggest learning them to think like a proficient software engineer. Plus, they can help you solve difficulties easier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Java multithreading&lt;/strong&gt; is a more advanced phase in your learning path. Yeah, it’s quite daunting, but no successful Java programmer can do without multithreading.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Java patterns&lt;/strong&gt;. Ideally, at this stage, you’ll already know how to write programs. Here, you can use a trial and error method to improve your skills.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unit testing&lt;/strong&gt; is the next important level for any Java programmer who’s going to write unit tests for their code. Once you get the hang of writing tests, you’ll be able to apply them to your projects. Hence, avoid mistakes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lambda expressions&lt;/strong&gt;. Today, even Java Juniors should be able to perform manipulations with lambdas, so you should add this topic to your learning plan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Serialization in JSON, RMI, HttpUrlConnection, socket&lt;/strong&gt;. This is the last step that is more suitable for intermediate-to-advanced Java programmers, which requires deeper knowledge and experience.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It’s quite an important topic, which should be highlighted in a separate post. Luckily, &lt;a href="https://levelup.gitconnected.com/what-you-should-learn-to-become-a-master-yoda-in-java-59c69207df78"&gt;I’ve already written one&lt;/a&gt;. Now you won’t be caught off guard by tons of different topics since you’ll be able to follow this clear and concise plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  Useful Resources: Theory
&lt;/h2&gt;

&lt;p&gt;No denying here, a theory is an essential step to start with. Luckily, the Internet is overcrowded with plenty of useful sites. To save your precious time, I suggest going through the top collections and reviews of the best books for Java programmers like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://codegym.cc/groups/posts/72-18-best-java-books-for-beginners-in-2019"&gt;22 Best Java Books For Beginners and Advanced learners In 2021&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.freecodecamp.org/news/must-read-books-to-learn-java-programming-327a3768ea2f/"&gt;Must-read books to learn Java programming&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;or &lt;a href="https://www.geeksforgeeks.org/best-books-to-learn-java-for-beginners-and-experts/"&gt;Best Books to Learn Java for Beginners and Experts&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also, you may benefit from online resources that offer hands-on tutorials and can help you build a practical approach to learning and quickly get you in the habit of coding. Among the best content-rich websites, I can highlight &lt;a href="https://codegym.cc/"&gt;CodeGym.cc&lt;/a&gt;, &lt;a href="https://www.codecademy.com/catalog/language/java"&gt;Codecademy&lt;/a&gt;, and &lt;a href="https://www.freecodecamp.org/"&gt;FreeCodeCamp&lt;/a&gt;. Whereas the latter two portals cover a wide number of different programming languages including PHP, Python, and some others, CodeGym.cc specializes solely in Java.&lt;/p&gt;

&lt;h2&gt;
  
  
  Useful Resources: Practice
&lt;/h2&gt;

&lt;p&gt;That just being said, CodeGym.cc boasts the 80/20 principle to teaching, with 80% of its content focused on practice, which you desperately need to become a successful Java developer. So, after covering the theory, it’s essential to move to practice and hone your skills.&lt;/p&gt;

&lt;p&gt;Understanding that practicing is very different from passive learning, the folks behind CodeGym.cc have done their best to make the course intuitive, even for 100% beginners. All the lessons are well-structured and are made with step-by-step instructions to guide you through the whole learning process.&lt;/p&gt;

&lt;p&gt;You can also take advantage of such resources as &lt;a href="http://zetcode.com/"&gt;ZetCode&lt;/a&gt;, &lt;a href="https://coderbyte.com/"&gt;Coderbyte&lt;/a&gt;, &lt;a href="https://www.jetbrains.com/idea/"&gt;JetBrains&lt;/a&gt;, and &lt;a href="https://www.geeksforgeeks.org/"&gt;GeeksforGeeks&lt;/a&gt;. They are full of different techniques to help you learn Java without getting overwhelmed with lots of information, as well as engaging coding challenges to keep you motivated and focused. I usually recommend my students to try multiple practice-oriented sources and stick with the one that speaks to them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter the Community!
&lt;/h2&gt;

&lt;p&gt;Still, if you feel stuck or frustrated at some point, you can always &lt;a href="https://medium.com/free-code-camp/learn-to-code-in-java-why-you-should-and-where-to-start-39022d15655d"&gt;refer to special platforms&lt;/a&gt; where programmers from all across the globe discuss ideas, solve each other’s problems, and share their experiences. Such communities as &lt;a href="https://stackoverflow.com/"&gt;Stackoverflow&lt;/a&gt;, &lt;a href="https://github.com/"&gt;GitHub&lt;/a&gt;, &lt;a href="https://slack.com/intl/en-ae/"&gt;Slack&lt;/a&gt;, and &lt;a href="https://www.reddit.com/"&gt;Reddit&lt;/a&gt; can help you find the support you need and learn from each other’s mistakes, thereby speeding up your learning process. Also, you can find some useful tips, which are not necessarily relevant to learning Java directly — lots of successful Java developers share not only their experience but their lifestyle as well. For example, you may learn the basics of time-management and build your schedule based on your needs and pace.&lt;/p&gt;

&lt;p&gt;Ideally, you should be able to devote 20–40 minutes to theory daily to get a familiarity with the language and a general aptitude and passion for programming. Afterward, you need to nail down the knowledge and perfect your new skills by practicing. Towards the end of your “window” of studying, you’ll be able to create a project or game to work on. That’s it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In all, I really believe that even a complete newbie can get the basic knowledge about Java programming language and start applying for jobs in about a year, provided that you have the right attitude to learning.&lt;/p&gt;

&lt;p&gt;Start slow with learning terminology, and then proceed with practice, practice, practice… oh wait, and again practice to get your foot in the door as a junior developer and arrange your first job interview.&lt;/p&gt;

&lt;p&gt;Also, remember that in order to stay popular and demanded, you need always to be open to something new and don’t stop perfecting yourself in coding. Just like Java is continuously changing to stay relevant (even after 25 years of existence), any good developer should constantly upgrade their skills to stay in demand.&lt;/p&gt;

&lt;p&gt;Anyways, the sky’s the limit when it comes to learning codes and there’s always room for improvement.&lt;/p&gt;

&lt;p&gt;First published at &lt;a href="https://medium.com/quick-code/how-long-does-it-take-to-learn-java-a-lifelong-challenge-p-s-dont-fret-and-keep-on-reading-f3c11aa6cb2a"&gt;Quick Code&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>coding</category>
      <category>programming</category>
    </item>
    <item>
      <title>Can I Become a Java Specialist in Less Than a Year? This and Many More Questions About Java Learning Answered</title>
      <dc:creator>John Selawsky</dc:creator>
      <pubDate>Wed, 27 Oct 2021 11:50:13 +0000</pubDate>
      <link>https://dev.to/selawsky/can-i-become-a-java-specialist-in-less-than-a-year-this-and-many-more-questions-about-java-learning-answered-4cg</link>
      <guid>https://dev.to/selawsky/can-i-become-a-java-specialist-in-less-than-a-year-this-and-many-more-questions-about-java-learning-answered-4cg</guid>
      <description>&lt;p&gt;What is Java? Why Java? How to learn Java? These and many more questions are going to be covered below. And, as an experienced Java tutor, I dare say I can bate the curiosity of both fellow students and hobbyists alike. So, let’s get started!&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Java? Why is Java?
&lt;/h2&gt;

&lt;p&gt;Starting with the basics, I’d like to tell you what exactly Java is and what it’s mainly used for. Actually, Java is one of the most popular programming languages with more than 25 years of success. First released by Sun Microsystems in 1995, it still remains among the top 3 programming languages and doesn’t show any sign of declining in use because of its simplicity and versatility. It’s a fundamentally class-based, object-oriented language, which is considered to be pretty easy. But besides the fact that Java is simple to write and easy to run, this programming language is very robust as Java objects contain no references to data external to themselves.&lt;/p&gt;

&lt;p&gt;Another point in favor of Java is that you can run it almost wherever and whenever, i.e., apps written in Java can be distributed for a single computer or across servers and clients in an extensive network of multiple devices. In other words, Java is widely used for developing Web apps, Android apps, Scientific apps, and creating software tools like Eclipse, IntelliJ IDEA, NetBeans IDE, and others. Moreover, Java is more widespread in your daily life than you might think. The truth is, it’s used for developing such giants as Google, YouTube, Linkedin, Amazon, eBay, and many other popular services. And here arises the following question…&lt;/p&gt;

&lt;h2&gt;
  
  
  How Demanded are Java Specialists?
&lt;/h2&gt;

&lt;p&gt;Highly! Java language is used everywhere, from mobile phones to supercomputers, with the increasing number of small and big businesses investing in app development to skyrocket their sales. And if you browse through such popular job websites like &lt;a href="https://www.indeed.com/"&gt;Indeed&lt;/a&gt; and &lt;a href="https://www.glassdoor.com/"&gt;Glassdoor&lt;/a&gt;, you’ll find more than 85,000 job openings for Java developers only in the USA. Furthermore, according to &lt;a href="https://www.ziprecruiter.com/Salaries/JAVA-Android-Developer-Salary"&gt;ZipRecruiter’s data&lt;/a&gt;, the salary of a Java developer in the USA may go as high as $105,453 per year.&lt;br&gt;
Are you not convinced yet? According to the latest researches, a post of a Java developer takes the first place in the rating of &lt;a href="https://www.techrepublic.com/article/10-jobs-with-lowest-career-switch-rate-and-the-leader-will-surprise-you/"&gt;jobs with the lowest career switch rate&lt;/a&gt;, which means Java specialists get not only a high salary but a high level of satisfaction as well. So, if you’re after a decent, exciting job that will keep you motivated, you can’t go wrong with becoming a Java programmer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Choose Java as the Starting Point?
&lt;/h2&gt;

&lt;p&gt;You may think that there are lots of other programming languages besides Java, so why not start with an alternative? In reality, the foundational strength of Java is that it’s exceptionally simple to write and to run, which is particularly tempting for complete beginners with no background and knowledge of other programming languages. And even though some Java “opponents” say there are many different languages with even easier syntax, only a few programming languages can boast such an abundance of official databases and support from communities. This mix makes Java one of the quickest languages to learn.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Long Does it Take to Learn Java?
&lt;/h2&gt;

&lt;p&gt;Well, everything depends on some factors like your background, the time spent daily studying, and your learning program. On average, if you have zero programming skills, you’ll need about 12–18 months to get your first job as a Java programmer (granted that you spend at least 2–3 hours on learning per day). Of course, the key to successful learning lies mainly in the resources you use, motivation, and a plan.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are Some Tricks to Learn Java Quickly?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create a learning plan&lt;/strong&gt;. Actually, an effective learning plan is one of the most important things that will help you stay consistent and, hence, learn Java quickly. Though most beginners understate the importance of a well-thought-out plan, it’s the thing that no successful Java student can do without. Luckily, I’ve already written a comprehensive and concise plan so that you won’t be caught off guard by numerous Java topics. By sticking to it, you’ll be able to study regularly and get the right amount of information step-by-step. The only thing you should avoid is taking long breaks since my experience shows that students who tend to take long pauses may progress relatively slowly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Practice&lt;/strong&gt;. Once you feel that you’re ready to start coding, do that! Try to hone your Java coding skills after each theory block. You shouldn’t necessarily need to create complex codes. Instead, you can learn from others’ code or try some interactive approaches to practicing, like re-making popular games.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use the power of Java communities&lt;/strong&gt;. One of the most substantial reasons for Java’s popularity is its active community support. With tens of millions of Java developers all around the world, the community continues to grow and inspire (Java is the second-largest programming language among the Stack Overflow community). So, you can always rely on your peers on the Net to help you out if you happen to get stuck in a programming rut.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where to Learn Java?
&lt;/h2&gt;

&lt;p&gt;Since Java is an ultra-popular programming language, there are tons of different online resources that can help you learn Java quickly and effectively. Among the best ones, I can highlight:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://codegym.cc/"&gt;Codegym&lt;/a&gt;&lt;/strong&gt;. It’s an online course that doesn’t require you to wait for an offline group to form and the whole course to begin. You can study at your comfortable pace both on desktop and mobile devices. The course is suitable for complete newbies — it’s well-structured and consists of theory and 1200 practical tasks with 500+ practicing hours in total. Codegym boasts non-boring teaching techniques, including visualization, motivation, storytelling, gaming, and dozens of other engaging technologies. And to make learning even more fun, Codegym offers a large community, meaning there will always be someone a few clicks away to help you out.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.codecademy.com/catalog/language/java"&gt;Codecademy&lt;/a&gt;&lt;/strong&gt; is one more online interactive platform that offers coding classes in more languages than just Java. It uses a user-friendly web IDE, where you can write your own code, and it’ll be checked immediately. The website also includes helpful hints and the FAQ section handy for novice learners. The lectures in this course are easy-understandable and full of graphic visuals.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="https://teamtreehouse.com/learn/java"&gt;Treehouse&lt;/a&gt;&lt;/strong&gt; is an e-learning platform that offers courses in web development, mobile development, game development, and web design. The lessons are created by a team of experts that can help you boost your level from beginner to advanced. This platform is best suitable for programmers and web designers.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What’s the Best Way to Learn Java?
&lt;/h2&gt;

&lt;p&gt;Code on a daily basis! You can’t succeed only by reading theory or watching Youtube tutorials on how to learn Java. It would be best if you tried sticking to the ideal theory-practice balance with 80% of your time focused on practice and 20% devoted to theory. And the earlier you’ll get down to writing your own codes, the faster you’ll succeed. Practice is the key to learning coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are the Best Books to Learn Java?
&lt;/h2&gt;

&lt;p&gt;That just being said, a theory is undoubtedly an essential part at the beginning. Hopefully, in our Internet era, you can find books and tutorials online. I recommend looking through the top collections of books for learning Java to find your cup of tea. &lt;strong&gt;“&lt;a href="https://codegym.cc/groups/posts/72-18-best-java-books-for-beginners-in-2019"&gt;22 Best Java Books For Beginners and Advanced learners In 2021&lt;/a&gt;”&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://www.geeksforgeeks.org/best-books-to-learn-java-for-beginners-and-experts/"&gt;Best Books to Learn Java for Beginners and Experts&lt;/a&gt;&lt;/strong&gt; are my personal favorites.&lt;/p&gt;

&lt;p&gt;Again, no matter what book you choose, avoid overloading yourself with too much theory — try to learn Java in small portions, especially during the first months of study, and after each topic, sharpen your knowledge with practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to Use Java?
&lt;/h2&gt;

&lt;p&gt;As already mentioned, Java can be run almost anywhere at any time, and it constantly helps create many new projects in the tech industry, starting from e-commerce websites to android apps, from games to desktop apps.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Android Apps&lt;/strong&gt;. Just open any Android phone and any app, and you’ll see everything is written in Java.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server Apps in the Financial Services Industry&lt;/strong&gt;. Java has entered a serious world of the front, and back-office electronic trading systems, and currently, lots of global Investment banks use Java as the main programming language for their apps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Java Web applications&lt;/strong&gt;. E-commerce and web application space also can’t do without Java. Many healthcare, insurance, and education companies have their apps created in Java.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Software Tools&lt;/strong&gt;. Many valuable tools like Eclipse IDE, IntelliJ Idea, and NetBeans IDE are written and developed in Java.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Big Data technologies&lt;/strong&gt;. Although Java isn’t prevailing in big data technologies, it’s still widely used in this field.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Besides the said spaces, Java is extensively used in other spheres. Technology is advancing at an incredible rate, meaning there are lots of upcoming job opportunities, and developers who have a solid knowledge of Java are in great demand.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is Starting to Learn Java at Age 30+ a Joke?
&lt;/h2&gt;

&lt;p&gt;Just like there is no fast rule for learning Java, there is no age bar. It’s never too late to learn Java, and the interest may grow in you at any age. Moreover, when you have a universal database of study (I mean the Internet), you’re not bound to institutions and their age limits. Choose a comfortable, consistent schedule and effective courses for learning Java to succeed and even exceed fellow learners.&lt;/p&gt;

&lt;p&gt;What’s more, a software developer’s career can last a whole life since Java specialists are always in demand, no matter the age. Even 60+-year-old coders often get offers from respectable companies. And your working life will always be interesting since technologies change at an incredible rate and there is always room for improvement. Not without reason, software developers have the &lt;a href="https://www.techrepublic.com/article/10-jobs-with-lowest-career-switch-rate-and-the-leader-will-surprise-you/"&gt;lowest career-switch rate&lt;/a&gt; (less than 8%) out there!&lt;/p&gt;

&lt;h2&gt;
  
  
  Summing Up
&lt;/h2&gt;

&lt;p&gt;You can learn new things anytime you want. Life is full of challenges, and if you’re interested in learning Java, take it as a challenge and go for it! Learning new things doesn’t depend on age. If you stay consistent and are armed with the right resources, you’ll be able to advance your skills and become a demanded Java developer. Good luck!&lt;/p&gt;

&lt;p&gt;First published &lt;a href="https://medium.com/javarevisited/can-i-become-a-java-specialist-in-less-than-a-year-ef75bb5a079d"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>coding</category>
      <category>programming</category>
      <category>java</category>
    </item>
    <item>
      <title>How to Start Learning a Programming Language without Stress and Anxiety</title>
      <dc:creator>John Selawsky</dc:creator>
      <pubDate>Wed, 27 Oct 2021 10:05:04 +0000</pubDate>
      <link>https://dev.to/selawsky/how-to-start-learning-a-programming-language-without-stress-and-anxiety-1p40</link>
      <guid>https://dev.to/selawsky/how-to-start-learning-a-programming-language-without-stress-and-anxiety-1p40</guid>
      <description>&lt;p&gt;The stress of learning a new profession and getting a job keeps many people under pressure.&lt;/p&gt;

&lt;p&gt;Programming is an evolving industry with a high level of demand on professionals of all levels, however, there’s always competition and besides, the profession itself is not easy at all.&lt;/p&gt;

&lt;p&gt;So, how to learn programming and become a demanded professional without all this anxiety?&lt;/p&gt;

&lt;p&gt;You can have it easier if you focus on planning and find the right ways to practice. Thus, you will back your knowledge with some practical experience and gain more self-confidence when doing your first steps into the profession.&lt;/p&gt;

&lt;p&gt;How exactly can you do that? Let’s go through the main principles!&lt;/p&gt;

&lt;h2&gt;
  
  
  Set the Right Expectations
&lt;/h2&gt;

&lt;p&gt;The main reason for stress in a new profession is a gap between expectations and reality. So, let’s start with understanding what the things are so that you could take your weighted decision and understand what to expect for. It will make your further journey much smoother.&lt;/p&gt;

&lt;h2&gt;
  
  
  Programming Requires Effort
&lt;/h2&gt;

&lt;p&gt;It’s the first thing you need to understand about programming.&lt;/p&gt;

&lt;p&gt;Yes, it’s a well-paid, interesting and even exciting profession, but no, you can’t become a great programmer in just a couple of months after finishing your first course. Just as anywhere else.&lt;/p&gt;

&lt;p&gt;You need to build your learning plan and dedicate a regular amount of time every week until you can fund your first job.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sometimes It May Not Be Easy
&lt;/h2&gt;

&lt;p&gt;You will start learning with very simple tasks, and they will give you excitement and inspiration after every new success. And it’s great.&lt;/p&gt;

&lt;p&gt;But earlier or later, you will face a task that you don’t know how to solve. The information given in a course may be insufficient (even in the best course, sometimes you may just need more info) — or it may be a test task from your new job that you will need to handle.&lt;/p&gt;

&lt;p&gt;It’s not the reason to give up. It’s what happens in any profession, every time you learn. You will just need to find more information, ask the community for help, etc. — and it’s a normal part of the process. You will face many challenges and you will need to overcome them.&lt;/p&gt;

&lt;h2&gt;
  
  
  It Will Take Time
&lt;/h2&gt;

&lt;p&gt;Programming is an incredibly wide field. You will start with small steps and the further you go, the more new topics for learning you will discover.&lt;/p&gt;

&lt;p&gt;On the one hand, it means you’ll never get bored.&lt;/p&gt;

&lt;p&gt;On the other hand, you’ll need to dedicate quite a lot of time to learning before you become a professional — and even after. Programmers always learn new things.&lt;/p&gt;

&lt;p&gt;All you have to do is be realistic about how much time you have to devote to learning and where it will lead you in the long run.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sometimes, It May Be Stressful
&lt;/h2&gt;

&lt;p&gt;Some people regard programming as a stress-free career. Their thinking is constructed as: “they just sit before a computer and type.”&lt;/p&gt;

&lt;p&gt;But stress is just a part of our lives.&lt;/p&gt;

&lt;p&gt;You may have a burning deadline. Or a task you don’t know how to solve. This may cause anxiety — and for beginners, it may be even more overwhelming.&lt;/p&gt;

&lt;p&gt;However, you can always work it out by sticking to the plan, setting your goals, and continuing to learn from courses, lectures, books, and the community. Again, it’s a normal part of the process.&lt;/p&gt;

&lt;h2&gt;
  
  
  What May Cause Stress to a Beginner Programmer?
&lt;/h2&gt;

&lt;p&gt;Now let’s get specifically to what is waiting for you at the very beginning of your path as a programmer. It’s important to understand that many beginners go through these issues. Some of them may be additional obstacles, but none of them is a reason to stop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Being Unsure of Your Skills
&lt;/h2&gt;

&lt;p&gt;Working in groups adds to the strain because you are always in contact with colleagues who appear brighter, more technologically aware, and paying more attention to detail. All of the above can cause newborn programmers to undervalue their worth and begin to fear being labeled as imposters one day.&lt;/p&gt;

&lt;p&gt;But wait, you are a beginner. Yes, you know much less that people with greater experience do&amp;gt; It’s okay, just accept that — and keep growing as a professional.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starting Too Late Compared to the Other Programmers
&lt;/h2&gt;

&lt;p&gt;Coding has no age limit. Yet, some people do not appear to think so and doubt whether it’s still worth trying if they are older than other students in the group.&lt;/p&gt;

&lt;p&gt;It definitely is.&lt;/p&gt;

&lt;p&gt;Stories about young developers can make quite an impression. Young geniuses who earned their first million by developing an app in their 20-s… there are much more stories of people who were learning hard, working, and who reached their desired level of success in 35, 45, 55, or 65. These stories are not very interesting for the press, but there are millions of people who did — and you can do, as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not Fitting the image of a “real programmer”
&lt;/h2&gt;

&lt;p&gt;There’s a popular image that people see in their minds when speaking about programmers. Working 24/7, knowing a great load of technical stuff and speaking a language that is hard to understand.&lt;/p&gt;

&lt;p&gt;When you are a beginner, it’s very easy to get into a trap of the impostor syndrome, especially in a technical field. Especially if there’s such an image associated with a profession. But in real life, programmers are very different people with different styles, cultures, and age.&lt;/p&gt;

&lt;p&gt;And of course, not all of them are working 24/7. Moreover, extending your working week may lead to a quick burnout, so it;s better to stick to your regular schedule.&lt;/p&gt;

&lt;h2&gt;
  
  
  4 Best Pieces of Advice about How to Learn Programming without Stress
&lt;/h2&gt;

&lt;p&gt;How can you make it pleasant and consistent to learn coding? How can you avoid becoming envious or discouraged by your peers’ successes and failures?&lt;/p&gt;

&lt;p&gt;These are the suggestions made over the years of learning, programming, and speaking with beginner programmers in my Java field.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Choose Your Primary Programming Language First
&lt;/h2&gt;

&lt;p&gt;A recurring holy war battle in software development is whether it is better to master one programming language or to be an intermediate-level programmer in many of them. My personal answer is: it’s great to be a pro in one language with a deep understanding of other languages and frameworks.&lt;/p&gt;

&lt;p&gt;But it’s 100% better to start with one language at a time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So, where to start?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To learn Java is a good choice for starters.&lt;/p&gt;

&lt;p&gt;It’s not only my opinion as a Java tutor — Java is considered as one of the best programming languages for beginners, because it’s relatively easy and at the same time &lt;a href="https://pypl.github.io/PYPL.html"&gt;extremely widespread&lt;/a&gt; and &lt;a href="https://www.payscale.com/research/US/Job=Java_Developer/Salary"&gt;well-paid&lt;/a&gt; on the market.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Map out your Educational Plan
&lt;/h2&gt;

&lt;p&gt;It’s easier to study when you know what is ahead and a big path is divided into small steps.&lt;/p&gt;

&lt;p&gt;This is why it’s important to map the learning curve if you want to become a programmer as quickly as feasible.&lt;/p&gt;

&lt;p&gt;Being a Java tutor, I will map the path using Java as an example, however, all these steps can be implemented to learn other programming languages. So, here is an example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Java Core&lt;/strong&gt;: These are the fundamental notions that you must master in order to create effective programs. You must know what objects, classes, and methods are, as well as what data types Java supports and what operations are valid on them. Moreover, the following are the basics to start with when learning Java Core.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Java Syntax&lt;/strong&gt;: This is Java grammar. The acceptable mix of keywords, symbols, and operators in Java code is determined by a set of rules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Object-oriented&lt;/strong&gt;: It is a programming approach in which programs are built around the concept of “objects” rather than “functions,” with these objects having properties and behaviors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Java Collections&lt;/strong&gt;: This enables you to interact with individual objects as a single entity (a collection).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Java Exceptions&lt;/strong&gt;: Exceptions are occurrences (errors) that occur when something goes wrong while the code is being executed.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Input/Output Streams&lt;/strong&gt;: Java’s input and output activities, such as reading from or writing to a file, are handled by streams.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Algorithms and Puzzles&lt;/strong&gt;: Algorithms are a set of instructions for performing a given activity (for example, sorting algorithms — step-by-step instructions for sorting elements).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Java Multithreading&lt;/strong&gt;: This refers to running multiple parts of your code concurrently in order to make the best use of the CPU.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Java Patterns&lt;/strong&gt;: This topic is connected to program design, how to construct a program that saves time and resources by utilizing well-developed programming patterns.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Unit Testing&lt;/strong&gt;: This is a continuing process that is an essential aspect of growing your program. It requires writing tests for various areas of your code, with the unit being the smallest testable portion.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lambda Expressions&lt;/strong&gt;: They were introduced in Java 8. They allow you to consider functions as method arguments or code as data.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Use the Right Online Sources
&lt;/h2&gt;

&lt;p&gt;When books and video courses are useful for grasping the gist of the language, I believe that programmers should place a strong emphasis on practice while learning.&lt;/p&gt;

&lt;p&gt;Programming is a highly-practical skill. The same as you can’t learn swimming or driving without practice, you can’t learn programming from books and lectures only. It’s always &lt;a href="https://betterprogramming.pub/change-your-life-as-a-programmer-with-the-80-20-rule-17c325609343"&gt;20% of theory and 80% of practice&lt;/a&gt; on each small step. And I think it’s much more exciting than just reading and learning.&lt;/p&gt;

&lt;p&gt;So, what I recommend is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using books, tutorials, and video sources to understand the principles.&lt;/li&gt;
&lt;li&gt;And using all chances for practice (playing games, googling exercises, etc.) after each theory piece.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Join Programming Communities
&lt;/h2&gt;

&lt;p&gt;One of the deadly mistakes I’ve seen developer trainees make is attempting to overcome the difficulties of programming on their own. Coding is quite difficult on its own, and it’s always great to connect with other people who may give you a hint.&lt;/p&gt;

&lt;p&gt;Here are some of the most popular communities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://stackoverflow.com/"&gt;StackOverflow&lt;/a&gt; is a question and answer site for programmers. So if you are stuck with some task don’t hesitate to ask more experienced fellows for a piece of advice.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://thehackernews.com/"&gt;Hackernews&lt;/a&gt; is a social news site on computer science and entrepreneurship, and&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/"&gt;Github&lt;/a&gt; is a repository hosting source where over 65 million professionals share their projects, and codes, and contribute to the open source community.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.freecodecamp.org/"&gt;FreeCodeCamp&lt;/a&gt; is a free programming learning platform with over 40,000 students to communicate with.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  TOP-4 Online Platforms to Learn Java
&lt;/h2&gt;

&lt;p&gt;There are some nice online platforms and courses that combine both theory and practice that I’d like to share. Because I’m a Java tutor, they will be mostly related to Java, but some of them include other languages, as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://codegym.cc/"&gt;CodeGym.cc&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;It’s my personal top pick. There’s no better way to learn a skill rather than playing a game, and this Java learning platform supports this principle combining both theory and practice in a gamified form.&lt;/p&gt;

&lt;p&gt;Here you can learn Java basics, OOP, multithreading, Collections, and more.&lt;br&gt;
The course is divided into levels like a video game with more than 1200 practical tasks where you learn, gain points by solving problems and move to the next level. Some tasks are simple, for the assimilation of theory. Others are complex, broken up into several parts. By solving them, you will create different applications, for example, a restaurant emulator or a simple video game. What also makes this course special, it has a built-in validator that checks solutions. If there is something wrong with the solution, he sends tips for help.&lt;/p&gt;

&lt;p&gt;All of the lectures are capacious and short, so it will be easy to digest new topics and try them out on practice right away.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.hackerrank.com/domains/java?filters%5Bsubdomains%5D%5B%5D=java-introduction"&gt;HackerRank&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;It’s an easy-to-use and well-structured platform with a strong emphasis on practice and different programming languages included. Their Java course is really good.&lt;/p&gt;

&lt;p&gt;If you wish to compare yourself to other learners in programming, this is the place to compete by doing challenges. Just choose a course, choose your level, and solve the challenge. The resource regularly publishes user ratings with their task solving statistics.&lt;/p&gt;

&lt;p&gt;The most popular challenges relate to algorithms and dynamic programming, big data analysis, and some and other topics.&lt;/p&gt;

&lt;p&gt;It’s great to use HackerRank together with a more classic learning course to compare your results with a wide community and get inspired with new practical tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.codecademy.com/learn/learn-java"&gt;Codecademy&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Codecademy is an online interactive platform that offers classes in 14 different languages including Java, as well as web development, backend programming, computer science, and data science.&lt;/p&gt;

&lt;p&gt;It has a user-friendly web IDE, where you can write code and immediately check it, a section with useful tips to complete each task, and the FAQ section.&lt;br&gt;
Codecademy offers its users three different ways to learn on their website — Free Courses, Codecademy Pro, and Codecademy Intensive. Each of the packages has its special features. This is where you may get an additional curriculum, deadlines, a separate Slack channel, exams, and so on.&lt;/p&gt;

&lt;p&gt;The interactive lessons are short and with attractive graphics. After finishing the course, students can complete simple practical tasks such as creating a calculator.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.codechef.com/"&gt;CodeChef&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;CodeChef is a competitive programming learning platform that offers hundreds of tasks.&lt;/p&gt;

&lt;p&gt;You can write code in their online editor and view a set of assignments that are divided into different categories based on your skill level. The site has a large community of coders who are active on forums, write tutorials, and participate in CodeChef coding competitions.&lt;/p&gt;

&lt;p&gt;More of that, CodeChef holds regular programming contests where aspiring programmers can show their skills and win prizes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let’s Wrap It Up
&lt;/h2&gt;

&lt;p&gt;Although there are many ways to deal with the learning stress, having a clear goal and plan for your programming education will help you approach each day of study with a clear mind. Another thing that will give you a great deal of calmness and confidence is choosing a well-structured course.&lt;/p&gt;

&lt;p&gt;Select a language you want to start with, build a plan, choose a course, complement it with additional theory and practice, and join the communities to support you. And remember that every pro programmer also was a beginner some time ago!&lt;/p&gt;

&lt;p&gt;First published &lt;a href="https://blog.devgenius.io/how-to-start-learning-a-programming-language-without-stress-and-anxiety-78cb793b3df7"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>coding</category>
      <category>programming</category>
    </item>
    <item>
      <title>Beyond coding: a list of Java Developer’s typical tasks on a project</title>
      <dc:creator>John Selawsky</dc:creator>
      <pubDate>Tue, 12 Oct 2021 16:54:58 +0000</pubDate>
      <link>https://dev.to/selawsky/beyond-coding-a-list-of-java-developer-s-typical-tasks-on-a-project-5a0b</link>
      <guid>https://dev.to/selawsky/beyond-coding-a-list-of-java-developer-s-typical-tasks-on-a-project-5a0b</guid>
      <description>&lt;p&gt;Coding is all the rage nowadays. No surprises here: it pays well, is in high demand, and is easy to pick up from the comfort of your home. Sounds great, if it was not so confusing.&lt;/p&gt;

&lt;p&gt;Software developers keep talking about all these meetings, reviews, bug fixing, documentation… whilst you as a newbie might’ve thought that being a coder is about writing code. Well, it is that, too, but the responsibilities of an average developer go beyond that. But don’t panic! In this article, you’ll discover the daily routine of Java developers. That way, you’ll know if becoming one is right up your alley.&lt;/p&gt;

&lt;p&gt;Let’s check out typical tasks of a Java developer on a project. But first of all, let’s set a baseline and define what Java developers are there in the programming world, from the perspective of their experience and skill sets.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Developers’ Hierarchy
&lt;/h2&gt;

&lt;p&gt;It goes without saying that the following categories are quite smudgy. As a programmer you can be Middle/Senior as a highly skilled specialist in a narrow development, or a T-shaped specialist (with skills from different areas). Still, it’s good to know the general rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  Level 1: Junior Developer
&lt;/h2&gt;

&lt;p&gt;The junior position is a stepping stone, the beginning of your journey as a Java developer. At that stage of your career, you probably haven’t worked on a commercial product.&lt;/p&gt;

&lt;p&gt;As a junior, you’ll be fixing minor bugs and working on existing features. Chances are, the company will also attach a senior developer to you who will act as your mentor. A mentor would be the one whom you address all your questions, concerns, and confusions. If you think that this sounds more like studying than actual work, you’d be correct. Indeed, the junior developer’s footprint on the released product is minimal. That does not mean that you should not take your responsibilities seriously! By performing well at this level and demonstrating a can-do attitude, you’ll become a middle developer in no time!&lt;/p&gt;

&lt;h2&gt;
  
  
  Level 2: Middle Developer
&lt;/h2&gt;

&lt;p&gt;As evident by the title, middle developers are halfway between juniors and seniors. They are neither clueless greenhorns nor code ninjas that can solve problems by staring at them. Juniors become middles once they show the mastery of the frameworks and tools that the company uses (colloquially called “stack”) and that you are competent enough to independently finish small and middle-sized tasks without the mentor’s constant supervision. How long it will take you to get that coveted promotion is hard to gauge — it all depends on your goals and the company’s criteria.&lt;/p&gt;

&lt;p&gt;Regardless of when you’ll become middle, your responsibilities will increase, and there will be less hand-holding. Writing tests, maintaining documentation, iterating upon existing code, taking the initiative to devise efficient solutions for the problems, sometimes even mentoring junior colleagues — these are some of the many new expectations that you will have to fulfill. Congratulations, you are now a fully-fledged member of the team!&lt;/p&gt;

&lt;h2&gt;
  
  
  Level 3: Senior Developer
&lt;/h2&gt;

&lt;p&gt;Senior devs are the cream of the crop — they define the functionality and the scope of the project. They always see the task in a big picture mode and that makes them crucial contributors to the project.&lt;/p&gt;

&lt;p&gt;As they usually understand the project’s scope and how all bits of the program interconnect, senior devs gain a few unique responsibilities. These include reporting the project’s progress to the upper management and clients, discussing the business end of the software development, and ensuring that the business and developing process work in cohesion.&lt;/p&gt;

&lt;p&gt;Keep in mind that there is no universal certification that makes a developer a junior, middle, or senior. A senior from one’s company might be middle elsewhere. It all comes down to the company’s criteria. With that said, let’s now take a look at the responsibilities shared by all Java developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Daily Routine of a Java Developer
&lt;/h2&gt;

&lt;p&gt;Let’s not dive deep into responsibilities of a Junior developer in their first days / months on the project and focus on the daily tasks of an experienced Java developer, whom you can become pretty fast, if you put in some effort. This things-to-do list is vast and requires hard and soft skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  Designing New Solutions
&lt;/h2&gt;

&lt;p&gt;No matter how complex or trivial the task is, all solutions begin their lives at the design stage. Coding is about complex logical problems that do not have predefined solutions. It’s up to you to devise fast and efficient solutions. You might stumble at the beginning, either relying on slow solutions or copying algorithms that you do not understand to look more intelligent. You will have to find balance, and that can only come due to practice. It is okay to fail as long as you are going to remain open-minded and receptive to criticism. Being stubborn is one of the worst traits that an aspiring software developer might have.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing New Functionality
&lt;/h2&gt;

&lt;p&gt;Once you have settled on the initial solution, it is time to make it a reality. Efficiency is the name of the game in the coding world, and workflow ain’t an exception. All software companies use an application to assign tasks and track progress, the most popular one being JIRA. Your team leader will assign tasks to you most of the time. Ditto for time estimates, although it is a more flexible ordeal. You can argue for altering an estimate if you believe that the task demands less/more time.&lt;/p&gt;

&lt;p&gt;Don’t fret too much if you fail such a “deadline.” They are called estimates for a reason, and the more tasks you finish, the better your assessment of the required time will become. Also, keep in mind that the task is not finished after you mark it as such. What comes next is a process of testing, code review, and potential rewrites.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing Tests
&lt;/h2&gt;

&lt;p&gt;Uh-oh. “Everything worked fine on my PC,” but the code reviewer points out that your code failed a few tests. Tests? Yeah, tests. That you should have written before. I am not saying that you did not, but it is a task that not many developers enjoy doing. Thus, they might try to dodge these responsibilities as often as possible. While writing tests might feel like mundane chores, they are a necessity that ensures that programs run smoothly. Commercial applications are immense, and it is not feasible to manually check for every potential point of failure that your functions will have. Hence, tests.&lt;/p&gt;

&lt;p&gt;So don’t slack and write your tests.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding and Fixing Bugs
&lt;/h2&gt;

&lt;p&gt;Writing new functionality is not everything that devs have to do. Fixing bugs (caused by you or someone else) is another routinely assigned task that you’ll have to wrestle with. Here is how it works: Quality Assurance (QA) Engineers check the code for bugs by running a series of automated tests. Once they find these errors, they create a task in JIRA with the bug’s description and steps to reproduce it. An assigned dev then spends some time figuring out the root issue behind the bug and tries to fix it.&lt;/p&gt;

&lt;p&gt;How much time it’ll take depends on many factors: the developer’s skills, whether they wrote that part of the code, and the obscurity of the bug in question. Sometimes, it can be as simple as “someone forgot to put a semicolon somewhere.” Other times, a bug can be so elusive that you will have no other option but to send the ticket back to QA because you cannot reproduce it. As with everything else in the world of Java — you guessed it — it becomes easier with experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Review
&lt;/h2&gt;

&lt;p&gt;Remember that feeling of dread, getting your essay back glowing red from all the teacher’s remarks? Guess what, this feeling is back, coding edition! Yep, once you submit your code, it won’t get pushed to the main branch without a review from your supervisors. You will usually go through any issues together, using code review tools.&lt;/p&gt;

&lt;p&gt;Highlighted issues can range from some obscene errors in logic that must be fixed before code will get greenlit to something inconsequential as suggestions on more efficient solutions. Although, you’d be wise to heed the latter kind of comments as well, as it is an easy way to improve your skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code Analysis
&lt;/h2&gt;

&lt;p&gt;Everyone has recognizable handwriting, and the same is true for their coding style. Indentation, methodologies, and approaches blend into a beautiful mess that requires regular maintenance. Companies conduct periodical code analysis, looking at parts of code to figure out its shortcoming and how to improve them. A common practice is to review the code at the end of the development process. By that point, the dev team has a better picture of what they had to do than initially. Thus, they can improve upon the existing code while it is still fresh in their memories.&lt;/p&gt;

&lt;h2&gt;
  
  
  Refactoring Code
&lt;/h2&gt;

&lt;p&gt;Refactoring is like applied code analysis. Commercial software can be maintained and kept up to date for years. As developers’ practices and knowledge improve, they realize that old code does not hold up against modern standards. Enter refactoring, a process of rewriting the existing code from scratch without changing how it functions.&lt;/p&gt;

&lt;p&gt;Essentially, imagine a messy and dirty office desk. Refactoring is akin to tidying the desk up. By the end of it, it would be the very same office table, although much easier to navigate and a lot more pleasant to look at.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing Documentation
&lt;/h2&gt;

&lt;p&gt;Not all companies hire a technical writer — an employee who creates and maintains the documentation about the product’s functionality and code. In such a scenario, it would be up to you to document all the functionality that you introduce into a project. You will probably use tools like Confluence to collectively share and maintain the project’s documentation.&lt;/p&gt;

&lt;p&gt;It might not be the most exciting endeavor, but in the future you will thank them when they’ll have to do some work on an old project, and they’ll have a concise description of the project’s functionality. Likewise, whenever you are first assigned to a new project, checking out the documentation is the best thing you can do, as it’ll contain answers to many of your questions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Participating in Various Meetings
&lt;/h2&gt;

&lt;p&gt;Traditionally, every morning begins with a stand-up: the team gathers in a circle (or in a Zoom call, if working remotely) and talks about what they did yesterday and what they are planning to do today. Stand-ups keep everyone up-to-date with the project’s status. They also streamline team leader’s decisions on whether they need to alter the tasks’ priority in any way.&lt;/p&gt;

&lt;p&gt;The number of meetings and calls throughout the day will depend on your current task and your seniority. You might have meetings with QAs so that they can demonstrate how to reproduce a particularly intricate bug. If you are a senior developer, you might be asked to conduct a technical interview with a potential hire. The rule of thumb is that the higher you climb in your career, the more meetings you’ll have.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Skills of a Java Developer
&lt;/h2&gt;

&lt;p&gt;Regardless of whether you end up using any of the resources above, here is one final cheat sheet of the key skills that any aspiring Java developer should have in their arsenal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Skills
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Core Java:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Syntax&lt;/li&gt;
&lt;li&gt;OOP&lt;/li&gt;
&lt;li&gt;Collections&lt;/li&gt;
&lt;li&gt;Generics&lt;/li&gt;
&lt;li&gt;Streams&lt;/li&gt;
&lt;li&gt;Multithreading and serialization&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Spring Framework:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Spring Boot&lt;/li&gt;
&lt;li&gt;Spring MVC&lt;/li&gt;
&lt;li&gt;Spring Clouds&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Hibernate.&lt;/li&gt;
&lt;li&gt;Testing tools:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;JUnit&lt;/li&gt;
&lt;li&gt;Mockito&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;APIs and Libraries.&lt;/li&gt;
&lt;li&gt;JVM Internals.&lt;/li&gt;
&lt;li&gt;Design Patterns and Architectural Patterns.&lt;/li&gt;
&lt;li&gt;DevOps Tools:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Jenkins&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Kubernetes&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;IntelliJ IDEA.&lt;/li&gt;
&lt;li&gt;Git.&lt;/li&gt;
&lt;li&gt;Build tools:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Maven&lt;/li&gt;
&lt;li&gt;Gradle&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;SQL and Databases:&lt;/li&gt;
&lt;li&gt;Web/App Server:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Tomcat&lt;/li&gt;
&lt;li&gt;JBoss&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Web services:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;REST&lt;/li&gt;
&lt;li&gt;Big JAX-WS&lt;/li&gt;
&lt;li&gt;JAX-RS&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;A little bit of HTML, CSS, JavaScript.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Soft Skills
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Communication Skills.&lt;/li&gt;
&lt;li&gt;Being Open to Learning.&lt;/li&gt;
&lt;li&gt;Team Work.&lt;/li&gt;
&lt;li&gt;Work Ethics.&lt;/li&gt;
&lt;li&gt;Interpersonal Skills.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How to Become a Java Developer
&lt;/h2&gt;

&lt;p&gt;That seems like a lot of things to do, eh? Well, if these tasks did not dissuade you, you are probably wondering — how can I become a Java developer? There are so many lesson plans, books, and guides that it might be hard to choose a single one. Don’t worry. I have prepared some materials that you can use as a guideline to get you started.&lt;/p&gt;

&lt;p&gt;Keep in mind that while reading books and watching videos is always a good thing, the best way to learn coding is by, well, writing a lot of code. So, don’t slack on practice, whether it is doing some fun exercises on the web or writing small applications, whatever strikes your fancy!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Choose the course to solidify your Java fundamentals knowledge and get hands-on practice. I advice to choose among online sources, so that you can learn at your own pace:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://codegym.cc/"&gt;CodeGym&lt;/a&gt;: a gamified learning course devoted strictly to Java, from zero to hero level of expertise. It uses futuristic narrative and motivation features to bring you back to learning again and again. But the strongest point there is practise: with hundreds of tasks on writing your solutions, fixing or retyping code, it may be chosen as the major platform for your practice.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.codecademy.com/"&gt;CodeCademy&lt;/a&gt;: an online interactive platform that offers free and low cost coding classes in web development, programming, computer science, and data science. Of course, Java basics is among them. The interface is user-friendly, and the level of complexity suits well for total beginners in coding.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Don’t forget about well-structured theory. Read Java tutorial for beginners (besides, it’s free):&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.javatpoint.com/java-tutorial"&gt;JavaTPoint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://beginnersbook.com/java-tutorial-for-beginners-with-examples/"&gt;Beginner’s Book&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.tutorialspoint.com/java/index.htm"&gt;Tutorial’s Point&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.oracle.com/javase/tutorial/"&gt;Oracle&lt;/a&gt; — the official documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Read professional Java-related blogs:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blogs.oracle.com/java/"&gt;Oracle Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="https://www.infoworld.com/category/java/"&gt;InfoWorld&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;For a change of pace, watch Java videos on YouTube, like:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/user/derekbanas"&gt;Derek Banas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/user/ProgrammingKnowledge"&gt;ProgrammingKnowledge&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Join discussion boards where you can ask specific questions:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://github.community/"&gt;GitHub Community&lt;/a&gt;&lt;br&gt;
&lt;a href="https://stackoverflow.com/"&gt;StackOverflow&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  And finally…
&lt;/h2&gt;

&lt;p&gt;Becoming a Java developer is not an easy task, but you will be aptly rewarded for sticking with this path. It is a profession that offers many growth opportunities, and it will keep you engaged with the variety of tasks that you’ll have to do each day.&lt;/p&gt;

&lt;p&gt;Even if you figure out that it is not for you, after all, there is no hurt in trying out. Who knows, maybe becoming a software developer is something that you have been looking for all these years!&lt;/p&gt;

&lt;p&gt;First published here: &lt;a href="https://medium.com/quick-code/beyond-coding-a-list-of-java-developers-typical-tasks-on-a-project-a8e53b2e34f1"&gt;Quick Code&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>coding</category>
      <category>programming</category>
    </item>
    <item>
      <title>Coder’s Block: How to Stop Worrying and Begin Your Coding Career</title>
      <dc:creator>John Selawsky</dc:creator>
      <pubDate>Tue, 12 Oct 2021 15:47:03 +0000</pubDate>
      <link>https://dev.to/selawsky/coder-s-block-how-to-stop-worrying-and-begin-your-coding-career-5fal</link>
      <guid>https://dev.to/selawsky/coder-s-block-how-to-stop-worrying-and-begin-your-coding-career-5fal</guid>
      <description>&lt;p&gt;The dreaded coder’s block! Two simple words that ruined more beginning careers than the whole legion of distant relatives armed with “Just get on with your current job, sweetie, you’re doing just fine” advice. Chances are, you have already encountered this vile beast, and if not, well, you better be prepared for it when it comes.&lt;/p&gt;

&lt;p&gt;Today let’s discuss the whole thing: what is coder’s block, the reasons for it to manifest, and, most importantly, how do we overcome it and go forth to productivity and success.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Coder’s Block?
&lt;/h2&gt;

&lt;p&gt;The coder’s block is a complete inability to write good code. Or any code at all, even. Trying to develop a concept of approaching the task at hand evokes panic; your mind is blank, your tool screen just as blank, your will an amorphous jelly. Sounds familiar?&lt;/p&gt;

&lt;p&gt;Do not worry, though. Soon, you’ll dissect the essence of the problem and learn how to deal with it.&lt;/p&gt;

&lt;p&gt;Why does it happen?&lt;/p&gt;

&lt;p&gt;There are several reasons, and we’re going to deal with them one by one. Let’s start with the most inward one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reason 1: You Doubt Yourself Too Much
&lt;/h2&gt;

&lt;p&gt;Too many doubts about your skills and capabilities can devastate any chances of even starting anything. If having thoughts like “I just don’t have a mindset for this” or “It requires too much knowledge, I will most certainly become confused and lost” is your thing, just ask yourself, why do such thoughts appear? The answer is because your self-calibration is way off, and that is because you don’t have a correct measuring scale.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Try communicating with people like you, beginners. You will see that everyone has doubts, everyone is struggling, it’s normal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ask professionals of the industry about their beginnings. You might hear a lot of stories akin to yours.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get that motivation engine going:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Stop comparing yourself to successful coders because you only see their success; what you don’t see is the path of struggle and hardships they have behind them.&lt;/li&gt;
&lt;li&gt;You’re probably making much more progress than you think. 3. Just believe me, you’ll see later.&lt;/li&gt;
&lt;li&gt;Check around: there are hundreds, thousands of people like you going through the same phase. It’s normal, and you will get over it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reason 2: Too Much Theory, Not Enough Practice
&lt;/h2&gt;

&lt;p&gt;No amount of books and video tutorials can make you a successful coder. Amassing knowledge is valuable, but only to a certain point. Then you gotta code.&lt;br&gt;
What can you do about that? Several things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chop the elephant down. Divide your knowledge into small pieces. Then…&lt;/li&gt;
&lt;li&gt;Use each small detail in practice, one by one. Have you learned something? Now try it.&lt;/li&gt;
&lt;li&gt;Don’t be ashamed to ask if you don’t understand something. No one understands everything.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reason 3: Your Goals Are Messed Up
&lt;/h2&gt;

&lt;p&gt;Are you sure you have your career goals planned out in a clear and comprehensible way? If you have the coder’s block, it might be the problem. Unclear goals mean unclear ways of reaching them, which means you don’t know what to do and do nothing.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is your ultimate goal?
&lt;/h3&gt;

&lt;p&gt;Right, you want to become a coder, but why? What do you want to achieve? Write it down. This goal can be as elaborate as you want it. Still, something like “Find a well-paid job and build a successful career” or “Become the leading specialist for BestCodersInTheWorld Incorporated” is good too.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a plan. It is nigh impossible to reach complicated goals if you don’t divide the path to it into understandable steps. It might be something like this:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Complete a Java course to grasp the basics of the language and get familiar with major programming concepts.&lt;/li&gt;
&lt;li&gt;Create a portfolio project to prove you’re capable of developing solutions on your own.&lt;/li&gt;
&lt;li&gt;Search for vacancies that suit your level of knowledge and skills.&lt;/li&gt;
&lt;li&gt;Get ready for the interview.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Each step of the plan you’ve created must be now divided further, into really simple parts that can be done fast. Let’s take the “Complete a Java course” step, for example, and break it down:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Complete a single lesson from the course.&lt;/li&gt;
&lt;li&gt;Complete the practical part of the lesson.&lt;/li&gt;
&lt;li&gt;Ideate a similar task but with different conditions and do it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Breaking the large goal down is really crucial to making your first steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reason 4: You’re Trying To Be a Lone Samurai
&lt;/h2&gt;

&lt;p&gt;Yeah, the thought of mastering your art alone and in complete isolation from the community might seem tempting for those of you who prefer solitude, but trust me on this one: cooperating with the community can skyrocket your progress.&lt;/p&gt;

&lt;p&gt;From shared experiences and success stories (gotta boost that motivation, remember?) to feedback on your code and career advice, the benefits of being an active member of the coders’ crowd are countless.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Actively seek help from experienced programmers. Don’t be shy; just be polite. There’s no harm in asking, and believe me, and many seniors just love sharing their experiences with newbies.&lt;/li&gt;
&lt;li&gt;Check other people’s open code! It is a perfect opportunity to see how industry standards look in reality and implement their best principles in your work.&lt;/li&gt;
&lt;li&gt;Join some online communities and spend some time socializing with like-minded people. Here are some platforms to check:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://stackoverflow.com/"&gt;StackOverflow&lt;/a&gt;: the largest free community of professional programmers, where you can post your question and get a quality answer to help you out. It’s 99% sure that if you have any issue, the helpful tip is already at StackOverflow.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.reddit.com/"&gt;Reddit&lt;/a&gt;: it is a social news aggregation and discussions website. Find the communities (subreddits) about programming, learning to code, and dive into the global developers’ community.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://coderanch.com/"&gt;CodeRanch&lt;/a&gt;: a forum to learn about and discuss programming. Initially it was a JavaRanch, so you can easily guess which language had been discussed the most.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://news.ycombinator.com/"&gt;HackerNews&lt;/a&gt;: it’s a media platform that features the latest security news and connects different communities. For example, security researchers, business grads, and thousands of security professionals.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Put Your Knowledge Into Practice
&lt;/h2&gt;

&lt;p&gt;All right, we’ve dealt with major reasons for the coder’s block and what you can do to overcome those, now let’s proceed to things you can use to press the success.&lt;/p&gt;

&lt;p&gt;Coder’s block is not something that will leave you forever after you defeat it. It can come back in your darkest hour, stronger than before. That is why it’s important to know how to boost your productivity and get your creative juices flowing. These are just some of the ways for that.&lt;/p&gt;

&lt;h2&gt;
  
  
  Play a Coding Game
&lt;/h2&gt;

&lt;p&gt;You’ve probably already heard about the gamification principle; it was a hot topic several years ago. Basically, everything becomes easier and more enjoyable if you make a game out of it. Coding is no exception. How do you gamify coding? Well, you can create some methods of your own, but the good news is a lot of people have already done it for you.&lt;/p&gt;

&lt;p&gt;I’ve prepared some options for you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://codegym.cc/"&gt;CodeGym&lt;/a&gt;: A gamified platform by its essence, CodeGym provides a ton of activities for a Java coder. This platform was dedicated to make learning much less tedious, and they implemented the whole arsenal of visual, storytelling, and motivational techniques to achieve that. Yet another strong point of CodeGym is an emphasis on practice: the course includes 1300+ tasks and coding projects to solidify the core knowledge and level up the coding skill.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://codecombat.com/"&gt;CodeCombat&lt;/a&gt;: This platform focuses on providing a gamified learning experience for younger students but can also be quite helpful if you’re an adult. The main projects, CodeCombat and Ozaria, both offer text-based adventures with tasty-looking graphics and cooperation with teachers.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://robocode.sourceforge.io/"&gt;Robocode&lt;/a&gt;: Here you create your robot battle tank (with the coding, of course) and pit it against others. It has a slightly more steep learning curve than in previously mentioned projects. Still, it’s a great way to learn while staying in gaming mode.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.codingame.com/start"&gt;CodinGame&lt;/a&gt;: It’s a multiplayer and community-oriented platform with a wide language coverage and tons of tricks and techniques to learn while practicing. As they say, CodinGame lets programmers improve their coding skills by solving the world’s most challenging problems.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Constantly Practice Using Your Projects and the Work of Others
&lt;/h2&gt;

&lt;p&gt;Yeah, I’ve said it before: practice. Practice a lot. Spending one weekend playing with your pet project and trying new things easily beats spending 2–3 weeks watching tutorials online.&lt;/p&gt;

&lt;p&gt;Therefore, explore some ideas you find interesting and start projects based on them. Experiment. Play. Coding is your oyster, and there are plenty of ways to cook it.&lt;/p&gt;

&lt;p&gt;Don’t limit yourself to your ideas and projects, though; the Net is full of free stuff, some of it priceless in terms of the inspiration it can provide. Here are some top open-source software places you might want to look at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: a great programmers community, where you can find tons of helpful information and make your first steps in contributing to open source. I personally recommend starting with this one.&lt;/li&gt;
&lt;li&gt;GitLab: like previously mentioned, it’s a tool that offers git repository management, code reviews, issue tracking, activity feeds and wikis.&lt;/li&gt;
&lt;li&gt;Bitbucket: a source that gives teams one place to plan projects, collaborate on code, test, and deploy.&lt;/li&gt;
&lt;li&gt;Beanstalk: a service for deploying and scaling web applications and services developed with numerous programming languages.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try Different Approaches to the Same Task
&lt;/h2&gt;

&lt;p&gt;In life, there is sometimes more than one way to do something. In coding, there ALWAYS is more than one. More than five ways, even. Part of becoming the best coder you can be is training your mind to seek new and more effective approaches to problem-solving constantly. Here are some things to train such a mindset:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Re-examine your code&lt;/li&gt;
&lt;li&gt;Think about what you can do differently&lt;/li&gt;
&lt;li&gt;Consult with other fellow programmers on the forums&lt;/li&gt;
&lt;li&gt;Check-open sources for similar solutions&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Here you go. Step over your coder’s block and go forth to the shining future full of flawless code. And remember, don’t punish yourself too much if you happen to get stuck sometimes. It happens. We’re all human beings, after all. Just try to overcome it as fast as possible, so it doesn’t affect you all that much. Use the community, your goals and plan, the experience of others, practice, and your motivation drive.&lt;br&gt;
And practice a lot. Did I mention practice?..&lt;/p&gt;

&lt;p&gt;First published at Better Programming](&lt;a href="https://betterprogramming.pub/coders-block-how-to-stop-worrying-and-begin-your-coding-career-15f1f8aa1dba"&gt;https://betterprogramming.pub/coders-block-how-to-stop-worrying-and-begin-your-coding-career-15f1f8aa1dba&lt;/a&gt;).&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to Get a Job as an Android Developer and Grow Into a Demanded Specialist</title>
      <dc:creator>John Selawsky</dc:creator>
      <pubDate>Mon, 11 Oct 2021 16:13:59 +0000</pubDate>
      <link>https://dev.to/selawsky/how-to-get-a-job-as-an-android-developer-and-grow-into-a-demanded-specialist-5fge</link>
      <guid>https://dev.to/selawsky/how-to-get-a-job-as-an-android-developer-and-grow-into-a-demanded-specialist-5fge</guid>
      <description>&lt;p&gt;Are you passionate about all those mobile apps hitting the scene each day and interested in becoming a proficient Android app developer? Good. I’m going to give you some useful hints on how to advance your skills and get hired for your dream job.&lt;/p&gt;

&lt;p&gt;Also, I’ll shed light on some of the best resources that will help you quickly learn Java, Kotlin and acquire other soft skills required for Android developers, as well as some websites that will help both trainee and junior specialists get hired by the best worldwide companies. But first things first, and let’s delve deeper into some facts and statistics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Are Android Specialists in Demand Right Now?
&lt;/h2&gt;

&lt;p&gt;In brief, yes. Android lets app developers generate new ideas and work with an infinite range of smartphones (from cheap to high-end devices) to open up hardware options as a free and open OS. Today, Android powers over &lt;a href="https://www.theverge.com/2021/5/18/22440813/android-devices-active-number-smartphones-google-2021"&gt;3 billion smart devices&lt;/a&gt; in every corner all across the globe. And according to &lt;a href="https://buildfire.com/app-statistics/"&gt;the latest statistics&lt;/a&gt;, the average Android owner uses 10 apps per day and 30 apps per month, which results in more than 100 thousand new apps releasing to the Google Play Store each month. Agree, this is a strong reason to consider that Android developing skills will always be in high demand and will guarantee your great future employability.&lt;/p&gt;

&lt;p&gt;Actually, popular job websites like &lt;a href="https://www.indeed.com/"&gt;Indeed&lt;/a&gt; and &lt;a href="https://www.glassdoor.com/"&gt;Glassdoor&lt;/a&gt; offer about 5,000 job openings for Android developers in the USA. And if we’re talking about the whole world, the number of job opportunities for Android developers is almost infinite.&lt;/p&gt;

&lt;p&gt;As for the salaries, an average Java Mobile Developer in the United States makes $96 000 annually. The average salary level varies from $64k per year as the minimum to $140k a year at the peak. According to &lt;a href="https://www.ziprecruiter.com/Salaries/JAVA-Android-Developer-Salary"&gt;ZipRecruiter’s data&lt;/a&gt;, the salary of a Java Android Developer in the USA is $105,453 a year or $51 an hour.&lt;/p&gt;

&lt;p&gt;More and more businesses are investing in app development since they help both big and small companies increase their sales by giving users quick and easy access to the products. Having an own app also allows companies to be more competitive in a specific market.&lt;/p&gt;

&lt;p&gt;So, with the rapid evolution and growth of Android technology, Android developers will definitely stay at the forefront of the industry. That naturally brings us to the next question: who is an Android developer and what responsibilities will you need to take on?&lt;/p&gt;

&lt;h2&gt;
  
  
  General Responsibilities of an Android Developer
&lt;/h2&gt;

&lt;p&gt;So, if you’re interested in becoming a competent Android app developer, you should know what essential tasks a good specialist should be able to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Build app functionality and UI.&lt;/strong&gt; You should be able to design your app in a way that enhances the user experience. Ideally, an app should be simple, fast, flexible, and secure because most app users prefer an intuitive and safe UI that makes the app more responsive and engaging.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collaborate with other team members.&lt;/strong&gt; As a large staff often makes the majority of apps, you better have good communication skills to convey your ideas to your team and interpret other people’s ideas correctly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deal with databases and APIs.&lt;/strong&gt; Of course, you have to make an app that will be able to seamlessly “communicate” with other apps. In other words, you ought to be able to create or use a set of programming codes that allows for data transmission between your software product and others.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Perform unit testing.&lt;/strong&gt; Needless to say, testing is crucial before releasing any app or any other software product to make sure your product works flawlessly and is intuitive to use. So, it is essential to test each module during the development phase, meaning you should be familiar with the most commonly used testing libraries like Mockito, Junit, and more.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Fix bugs.&lt;/strong&gt; During the testing process, it’s essential to face some problems and bugs. And a good Android developer should be able to fix them quickly and efficiently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stay up-to-date on new technologies.&lt;/strong&gt; As a developer, you should try to constantly &lt;em&gt;develop&lt;/em&gt; your skills and be open to something new. No pun intended.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Well, as you already know what the core skills are, you’re probably interested in how to become an Android developer and find a good job (once you’ve mastered all those skills, of course). Let’s explore what it takes to become a good Android developer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Primary Skills for Android Developers
&lt;/h2&gt;

&lt;p&gt;It goes without saying that with the rise in demand for developing advanced Android apps, the need for highly skilled developers has also increased. And, below, we’re going to watch out for the top technical and soft skills needed to become a proficient Android developer:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Java.&lt;/strong&gt; Java is one of the two official Android application programming languages that are essential to kick-start your career as an Android app developer.&lt;/p&gt;

&lt;p&gt;Going deeper into details, Java is one of the earliest programming languages and computing platforms released by Sun Microsystems in 1995. Yet, it remains one of the most secure, fast, and reliable platforms. Moreover, you can find Java everywhere, from laptops, tablets, cell phones to game consoles and even scientific supercomputers.&lt;/p&gt;

&lt;p&gt;It’s widely applied to enterprise apps, business apps, mobile apps, Web-based apps, scientific apps, distributed apps, cloud-based apps, gaming apps, as well as big data technologies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kotlin.&lt;/strong&gt; It’s the second official Android programming language that is considered to be a bit more concise, modern, and safer than Java. It’s called the language that “makes developers happier” since it’s pretty easy to pick up and, thus, it allows you to create powerful applications quicker.&lt;/p&gt;

&lt;p&gt;Overall, it’s a perfect starting point for newbies. Kotlin is usually applied in Android development, desktop development, and web development.&lt;/p&gt;

&lt;p&gt;Besides the knowledge of the aforementioned programming languages, you should be proficient in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Android SDK (software development kit).&lt;/li&gt;
&lt;li&gt;Tools like Android Studio, AVD manager, and Android Debug Bridge.&lt;/li&gt;
&lt;li&gt;Working on REST APIs development and integration.&lt;/li&gt;
&lt;li&gt;Spring, MVC, Web Service, Hibernate, HTML, CSS.&lt;/li&gt;
&lt;li&gt;Integrating with 3rd party libraries (monitoring, analytics, notifications, etc).&lt;/li&gt;
&lt;li&gt;Git and other version-control systems.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When it comes to &lt;strong&gt;soft skills&lt;/strong&gt;, the main requirement for candidates is that they should have excellent communication skills and work in a team. Additionally, they need to be adaptable, creative, and open to learning. Agile methodology and business knowledge of the industry will also add some extra points to your portfolio. In a word, you need to sharpen your non-technical skills to boost your career in Android development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to Find an Android Developer Job
&lt;/h2&gt;

&lt;p&gt;When it comes to starting a career, many websites offer you online jobs. Among the most popular ones — Upwork, Hubstaff, and Fiverr that are known worldwide and crowded with lots of hot vacancies and freelance jobs. However, if you’d like to place your resume on your own, you can benefit from using such well-known websites as Dice, Indeed, and LinkedIn.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to Learn Android Development
&lt;/h2&gt;

&lt;p&gt;The right courses are what can help you boost your skills and become proficient in your area (even if you’re starting from scratch). And, below, we’re giving you some of the most efficient sites that can help you quickly master different programming languages.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Java&lt;/strong&gt;. If you’re going to start with the basics, &lt;a href="https://codegym.cc/"&gt;CodeGym&lt;/a&gt; is an extensive web portal that can help you on that front. It’s a multilingual course (available in English, Chinese, German, French, Polish, Hindi, and many more) that includes more than 1200 practical tasks with different levels of complexity and is suitable for both newcomers and actual programmers who’d like to advance their skills. The course is particularly great for learning the basics of Java, and the first two quests (among four) give a good base for becoming a successful Android developer. The CodeGym course strikes the perfect balance between theory and practice (includes the basics of the Java language, OOP, multithreading, and collections). It also offers step-by-step detailed descriptions of any issues that might occur during the programming process, as well as tips and hints for solutions. As a nice touch, CodeGym is available both on desktop and mobile devices to let you master your skills wherever and whenever.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Kotlin&lt;/strong&gt;. Yet, if you’d like to learn the Kotlin language, you may benefit from another source — &lt;a href="https://developer.android.com/kotlin/campaign/learn"&gt;Developers&lt;/a&gt;. It consists of various training classes that describe how to perform specific tasks with code samples which you can further re-use in your app. Also, you’ll find many project samples, as well as design and behavior guidelines, on this portal to get ready to create your high-quality app. What’s more, there are some recommendations that can help you launch and distribute your app successfully.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Android&lt;/strong&gt;. Want to advance your skills in Android? Then, the Udacity course is definitely something worth trying. The course blends theory and practice and involves real experts that can help you build a cloud-connected Android app step-by-step. Also, you’ll get an opportunity to learn best practices of mobile development and, particularly, Android development.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SQLite for Android&lt;/strong&gt;. Those who’d like to code for free can take advantage of FreeCodeCamp with thousands of helpful videos, articles, and interactive coding lessons.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Git&lt;/strong&gt;. If you’re after learning Git, then look no further than &lt;a href="https://learngitbranching.js.org/"&gt;Learn Git Branching&lt;/a&gt;. This interactive visualization tool is very informative when it comes to introducing every concept of Git commands. It’s made in the form of a game that gets you through different levels to help you find out more about various Git commands. This fun development tool is great for both beginners and intermediate users.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Wrapping everything up, I’d like to stress that a typical Android developer knows how the apps work and how to program them; however, a real professional can do much more than that. From coming up with fresh ideas and bringing them to life (i.e. turning them into codes) to communicating with other experts and creating something unique, a good Android developer should deftly combine theoretical and practical knowledge and experience.&lt;/p&gt;

&lt;p&gt;First published at &lt;a href="https://medium.com/javarevisited/how-to-get-a-job-as-an-android-developer-and-grow-into-a-demanded-specialist-1cbfb9d4e494"&gt;JavaRevisited&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>android</category>
      <category>coding</category>
      <category>programming</category>
      <category>developing</category>
    </item>
    <item>
      <title>How to Start Coding: From Passive Learning to Active Practicing</title>
      <dc:creator>John Selawsky</dc:creator>
      <pubDate>Mon, 11 Oct 2021 15:47:53 +0000</pubDate>
      <link>https://dev.to/selawsky/how-to-start-coding-from-passive-learning-to-active-practicing-264g</link>
      <guid>https://dev.to/selawsky/how-to-start-coding-from-passive-learning-to-active-practicing-264g</guid>
      <description>&lt;p&gt;Are you willing to start a career in programming? Or, probably, you’re a dedicated hobbyist who wants to try coding just for fun? The chances are, you’re already armed with piles of different programming books, and your day starts with Youtube tutorials on how to learn Java, for example.&lt;/p&gt;

&lt;p&gt;All that just being said, you may still be a bit conscious about your programming skills and be unsure when and how to start coding. As a Java tutor, I often deal with students who continuously read about many topics and constantly try to explore more. However, they are often confused about applying their knowledge in real life and actual coding.&lt;/p&gt;

&lt;p&gt;If that sounds like you, you’re in the right place since my article can help you boost your self-esteem and begin your path to a successful (and demanded) programmer.&lt;/p&gt;

&lt;h2&gt;
  
  
  First Comes the Practice
&lt;/h2&gt;

&lt;p&gt;Although developers and programmers are in great demand right now, the truth is that outside of the education bubble there are no exams and no competitions. And, typically, not even companies that want inexperienced coders to write programs for them. Remember the old cliché: practice makes perfect. So you are unlikely to become a successful Java programmer if you don’t want to practice. Needless to say, practicing is very different from passively consuming, reading, watching, and listening.&lt;/p&gt;

&lt;p&gt;You may need a lot of coding to become a proficient developer. Actually, practice is the key to learning code. According to &lt;a href="https://www.forbes.com/sites/forbestechcouncil/2016/09/21/why-practice-is-the-key-to-learning-code/?sh=78ff7425d4a2"&gt;recent research&lt;/a&gt;, the cycle of “trying, failing, and overcoming our mistakes” helps us achieve much better results than passive learning. Of course, making your first steps into real programming might seem scary, but if you want to gain fundamental skills, cast your fears aside and let’s do it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Start Small
&lt;/h2&gt;

&lt;p&gt;Without a personal plan and the right approach to learning to code, just getting started can steal much time and take lots of effort, not to mention you might end up with all of the coding fun drained out of it. So, how about we set a scope from the beginning?&lt;/p&gt;

&lt;p&gt;As a programmer, you may want to start small. Regarding Malcolm Gladwell’s 10,000-hour rule, practicing a particular skill (including coding and programming) for about 20 hours per week and ten years in total is the key to success in any field. Therefore, it’s better to start slow and scope a particular skill so as not to get overwhelmed at the beginning and, consequently, make the whole process easier for yourself.&lt;/p&gt;

&lt;p&gt;Read about Java regularly to explore more, stay motivated, and get up-to-date, but remember to code more than you read.&lt;/p&gt;

&lt;h2&gt;
  
  
  Effective Practicing Methods
&lt;/h2&gt;

&lt;p&gt;And here comes the fun part, finally. Let’s discuss the best ways to sharpen your coding skill. It’s pretty easy, you’ll see.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stick to the Source with a Focus on Coding
&lt;/h2&gt;

&lt;p&gt;As with anything, knowing the basics of programming languages is the best place to start. Naturally, when creating an efficient learning plan, you should stick to several resources at least and try different learning techniques to find what works best for you. I suggest choosing all-around courses that involve not only theory but practice as well. Ideally, it should be a course that teaches the basics of Java and encourages daily coding. And regular practice is 80% of success.&lt;/p&gt;

&lt;p&gt;Among the best online services that offer excellent ways to kick-start your Java programming, I can highlight:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://codegym.cc/"&gt;Codegym&lt;/a&gt;. The course is dedicated to Java fundamentals. It offers informative lessons and well-structured training modules with instant verification and virtual mentoring of your projects. A student can solve tasks in a web IDE, or in IntelliJ IDEA, with CodeGym’s plugin.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.codecademy.com/"&gt;Codecademy&lt;/a&gt;. The portal includes short, easy-to-read lectures with interesting practical tasks. Plus, Codecademy boasts a user-friendly web IDE where you can write code and check them immediately.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.geeksforgeeks.org/"&gt;GeeksforGeeks&lt;/a&gt;. It’s famous for the huge database available for people who want to learn Java, as well as other programming languages.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dissimilar to many other websites, these portals won’t be overwhelming even for beginners. They offer a gigantic set of tutorials available for people worldwide (besides English, they are available in many more different languages). These training platforms also have fantastic step-by-step lessons with well-structured tasks and abilities to track your progress.&lt;/p&gt;

&lt;h2&gt;
  
  
  Copy the Code
&lt;/h2&gt;

&lt;p&gt;One of the easiest ways to become more confident in your programming skills is to refer to existing codes. By using someone else’s code examples and learning from professionals, you can drastically improve your skills while gradually building your own style. Again, today, you can find lots of practical courses and learning projects with code templates that will help you grow as a successful programmer. Among the most popular and effective services, I can highlight &lt;a href="https://www.coursera.org/courses"&gt;Coursera&lt;/a&gt;, &lt;a href="https://www.pluralsight.com/codeschool"&gt;Pluralsight&lt;/a&gt;, &lt;a href="https://www.freecodecamp.org/learn/"&gt;FreeCodeCamp&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start Your Coding Project
&lt;/h2&gt;

&lt;p&gt;And, finally, the most engaging and interactive way to learn Java coding is to create small projects like basic apps or games. For example, a novice developer can try to write chatbots, aggregators, or simple games, which is more fun. Of course, this method of practicing can be challenging for a complete beginner but, today, we’re lucky enough to try different Internet resources for help.&lt;/p&gt;

&lt;p&gt;If you’re into games, you may use CodeGym’s &lt;a href="https://codegym.cc/projects/games"&gt;‘Games’ section&lt;/a&gt;, follow the instructions, and re-make popular games like Minesweeper, Snake, Space Invaders, Racers, and some others. The projects include lots of detailed instructions, code examples and require a beginner-level amount of Java knowledge.&lt;/p&gt;

&lt;p&gt;If you want to train hard and try more programming languages, you can use other websites like &lt;a href="https://www.codingame.com/"&gt;CodinGame&lt;/a&gt; that cover various programming languages and different difficulty levels (from easy to very hard) to help you gradually improve your coding skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Stay Motivated
&lt;/h2&gt;

&lt;p&gt;Learning something new, especially coding, you should be ready for failure, and the best way to overcome or even avoid errors when coding is to get some extra help. Luckily, you can find lots of resources with useful information, as well as numerous communities and forums where developers from all over the world share their experience and knowledge.&lt;/p&gt;

&lt;p&gt;Besides the highly popular &lt;a href="https://www.quora.com/"&gt;Quora&lt;/a&gt; and &lt;a href="https://www.reddit.com/"&gt;Reddit&lt;/a&gt; where you can ask even the most stupid question and get a quick answer, you can take advantage of &lt;a href="https://coderanch.com/"&gt;Coderanch&lt;/a&gt;. It’s one of the oldest and largest coding forums. By the way, not so long ago, it was called JavaRanch, so you can easily guess which programming language is the most discussed.&lt;/p&gt;

&lt;p&gt;Need some motivation? If so, you may join the &lt;a href="https://www.facebook.com/groups/codecademy.community/"&gt;Codecademy Community&lt;/a&gt; with lots of topics on how to keep going when you feel stuck or frustrated. And if you ask my advice, I’d recommend you to take a breath and look back at everything you’ve already learned and accomplished to realize how far you’ve come. Also, it’s a nice idea to remember why you’ve started and what has inspired you whenever you feel down on yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrap-up
&lt;/h2&gt;

&lt;p&gt;For sure, coding isn’t an easy process, and it’s quite OK to make mistakes along the way. Many beginners often get stuck when they go too quickly through theory without taking time to practice.&lt;/p&gt;

&lt;p&gt;Spending some time with new skills is vital so that you can apply what you’ve already learned as you move on to more advanced concepts. Practice can also help you build an understanding of programming languages and boost your productivity and efficiency. Additionally, with more practice in coding, you are bound to decrease mistakes and improve accuracy.&lt;/p&gt;

&lt;p&gt;From all this, it’s an obvious conclusion that regular practice is exactly what you need to become a master of programming, and even a small project can give you exposure. The key is to find what practicing methods suit you better depending on your preferences and your stage of learning.&lt;/p&gt;

&lt;p&gt;So don’t be afraid. Try, and fail, and try again: this is what the road to mastery is made of.&lt;/p&gt;

&lt;p&gt;First was published at &lt;a href="https://levelup.gitconnected.com/how-to-start-coding-from-passive-learning-to-active-practicing-2cb118b312ad"&gt;Level Up Coding&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>coding</category>
      <category>programming</category>
      <category>code</category>
      <category>learn</category>
    </item>
    <item>
      <title>Greedy or savvy: is there a point to pay for Java learning?</title>
      <dc:creator>John Selawsky</dc:creator>
      <pubDate>Mon, 20 Sep 2021 12:53:51 +0000</pubDate>
      <link>https://dev.to/selawsky/greedy-or-savvy-is-there-a-point-to-pay-for-java-learning-jg4</link>
      <guid>https://dev.to/selawsky/greedy-or-savvy-is-there-a-point-to-pay-for-java-learning-jg4</guid>
      <description>&lt;p&gt;The Internet contains so much information that we can learn everything literally. Any syntax, any programming language, any specialization — nothing is impossible. According to TechJury, people create about 2.5 quintillion bytes of data every day! And an enormous amount of this information is free to access for anyone.&lt;/p&gt;

&lt;p&gt;I am a Java Developer and I know for sure that anyone can learn Java from free blogs, YouTube videos, and free classes on different educational platforms.&lt;/p&gt;

&lt;p&gt;However it’s not always the best option and I’m going to explain why we need to be paid educational services, and when it is time to switch from free online education to paid one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Possible pitfalls
&lt;/h2&gt;

&lt;p&gt;The reason is, free online learning has its downsides. One of them is the lack of structure. Sure, you can find an answer to almost every question, but you will likely spend a lot of time on it, and the studying itself will look like a mosaic that you put together piece by piece.&lt;/p&gt;

&lt;p&gt;The second problem is the quality of the content. You cannot trust any stranger who creates content, so you will have to spend some time checking her reputation. Moreover, most of the free lessons are meant for beginners. And, of course, nobody will correct your mistakes, guide you, or help you practice.&lt;/p&gt;

&lt;p&gt;Nevertheless, all the problems stated above must not stop you from starting to learn how to write the code. On the contrary, we will give you tips on how to study for free and decide that it is time for you to switch to the paid services.&lt;/p&gt;

&lt;h2&gt;
  
  
  Got time — engage in free learning
&lt;/h2&gt;

&lt;p&gt;If you are just starting to learn Java programming, be prepared to invest a lot of time. For people who should combine work, family, and study, it may take up to several years. But free online education is worth trying, especially in such cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You are considering the occupation of a programmer or QA specialist, but still not sure if it is right for you.&lt;/li&gt;
&lt;li&gt;You have a long-term goal of becoming a developer, but at the same time, there is no rush: you have plenty of time to achieve it (more than a year).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tips for self-studying
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;First&lt;/strong&gt;, it is crucial to find several sources which you can trust. You can choose among various video courses, text courses with tasks (or without them), free books or tutorials, etc. I can suggest several reliable and interesting sources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/watch?v=NBIUbTddde4&amp;amp;list=PLZPZq0r_RZOMhCAyywfnYLlrjiVOkdAI1" rel="noopener noreferrer"&gt;Java tutorial for beginners&lt;/a&gt; on YouTube. Here you can find some basic information, such as what JDK (Java Development Kit) is, how to download it, what IDE (Integrated Development Environment) is, how to install it, and a lot more. The information in this video is very vivid, enriched with examples, helpful tips, and tricks.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.tutorialspoint.com/java/index.htm" rel="noopener noreferrer"&gt;Java Tutorial&lt;/a&gt; at TutorialsPoint website. Here you can learn all the basics: from environment setup and syntax for beginners to objects, classes, variable types, methods, and so on. Moreover, you can even study advanced Java here (of course, if you are disciplined enough to proceed). The significant advantage of this website is its vast collection of examples.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.w3schools.com/java/" rel="noopener noreferrer"&gt;Java Tutorial&lt;/a&gt; at w3schools.com website. You can also benefit from this collection of lessons on Java. They explain all the basic concepts (methods, classes, file handling, etc.). Also, you can do exercises, take a quiz and get a certificate on completion of the Java course.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://java-programming.mooc.fi/" rel="noopener noreferrer"&gt;Free Java Programming&lt;/a&gt; course created by the University of Helsinki. Everyone (even if you have never tried programming before) can attend it and go through two parts: Java Programming I and Java Programming II. All lessons contain exercises. At the end of the course, you can get a certificate of completion.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Second&lt;/strong&gt;, it is necessary to allocate some time in your schedule to study regularly, even if you are very busy with work and/or family. The best way to learn Java is to spend some time every day reading and doing exercises. If it seems too hard for you, schedule at least three learning sessions per week.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third&lt;/strong&gt;, remember that not theory but coding itself should be your main priority. Be prepared for a lot of boring tasks which may seem meaningless sometimes.&lt;/p&gt;

&lt;p&gt;The truth is, they are useful anyway, and the more of them you complete — the faster you improve. If you need additional motivation, find it (for example, reward yourself for doing another five exercises with something nice).&lt;/p&gt;

&lt;h2&gt;
  
  
  Here comes a moment to move further
&lt;/h2&gt;

&lt;p&gt;Free online courses can be an excellent place to start, but at some point, you may feel like it is not enough. This dissatisfaction can come in different forms. Here are some of them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You drastically lack time to study, and at the same time, you need to learn Java and find a job fast. In this case, the sooner you choose the paid option, the better. Usually, these courses’ goal is to help you achieve tangible results as quickly as possible. Plus, you will experience increased motivation (that’s how the human brain works: we value more what we’ve paid for). Also, it will be easier to stick to the schedule, as there are deadlines in all the courses.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You’ve lost motivation and feel like quitting. Or you learn, maybe even regularly, but you do not see the return on your efforts. You are still not ready to solve complex tasks and cannot even think when you will apply for the first job. In this situation, switching to the paid course can also be helpful. Most likely, you will gain a clearer perspective: when you will finish studying and when you will start looking for a position.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You feel like you are doing something wrong. You finished one or two free courses, but you are unsure if they moved you forward enough. You want to continue developing your skills, become a better programmer — but you do not know where to find the relevant and helpful information beyond Java basics. Probably this is the perfect moment to choose a paid course.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Advantages of the paid courses
&lt;/h2&gt;

&lt;p&gt;By paying for a Java course, it is not only knowledge that you get. Besides that, you buy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Quality and freshness of information&lt;/strong&gt;. Nothing personal, just business: the companies that create courses try to make them as good as possible and regularly update the lessons. You do not risk finding outdated content as in the free tutorial. Also, almost all paid courses have a lot of free additional resources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Drive&lt;/strong&gt;. You pay good money not only for a bunch of lessons but also for an urge to stick to the schedule. If you miss the deadline, you will lose your dollars, which is a very unpleasant feeling for every human being (if you aren’t one, skip this point and go and try to kill Sarah Connor).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Discipline&lt;/strong&gt;. Each course has a schedule, and it makes you more organized. You will have to plan all your activities, fit the lessons into your daily routine, and eventually feel very proud of yourself for completing everything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community and support&lt;/strong&gt;. Some courses have mentors who can help you move along with your studying, check your tasks, etc. There is also an option to talk to other students, share problems and concerns, exchange tips and successes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Some options to consider
&lt;/h2&gt;

&lt;p&gt;If you do not know where to start in choosing the paid course, you can look at these options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://codegym.cc/" rel="noopener noreferrer"&gt;CodeGym&lt;/a&gt; uses a gamification approach to make learning more engaging and productive. For sure, you can study all Java basics, objects, and more here, but the more important thing is that you’ll solve more than 1200 coding tasks and experience learning like playing a video game. You solve tasks, get points, and unlock new levels with new lessons and exercises. Payments are possible on a monthly or annually basis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb5avzjlqcti6g7n7caaf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb5avzjlqcti6g7n7caaf.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The main advantage is practicality. The amount of tasks is impressive, and the embedded code validator saves plenty of time (if you make a mistake, you get a hint). The coding tasks vary from the simplest ones to creating real applications (small video games, for example). Also, there is a strong community, and you can ask for help if you have a problem. The most significant disadvantage is no deadlines, except for the end date of the subscription.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.codecademy.com/" rel="noopener noreferrer"&gt;CodeCademy&lt;/a&gt; is a big platform where you can learn several programming languages. Lessons are very practical, with a lot of exercises. You can pay either monthly or annually.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fue3yj1i4135i9869p0cn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fue3yj1i4135i9869p0cn.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The main advantage is convenience and access to a massive amount of lessons in different languages. The disadvantages of the platform are a lack of theoretical knowledge in some parts of the course and sometimes too many hints.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://ru.coursera.org/specializations/java-programming" rel="noopener noreferrer"&gt;Java Programming and Software Engineering Fundamentals&lt;/a&gt; on Coursera. If you prefer a more traditional approach, you may find this course (actually, a collection of 5 courses) from Duke University helpful. It is made for beginners and focuses on core concepts and basic skills that every developer needs, regardless of specialization. You will have to prepare a project to complete this course.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9jpy94zb305ih0wi8vy6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9jpy94zb305ih0wi8vy6.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The main advantage: traditional approach, subtitles in many languages, an opportunity to get a certificate. The biggest disadvantage: if you ever tried finishing courses in Coursera, you know how much discipline and motivation it takes.&lt;/p&gt;

&lt;p&gt;Today we have multiple ways to study Java, and we do not have to limit ourselves to just one or two. Trying out what works for you the best, keeping your mind open for new possibilities, and reconsidering different options — this is the path for success in getting your dream job even sooner than Elon Musk presents his next big idea.&lt;/p&gt;

&lt;p&gt;First published on &lt;a href="https://medium.com/javarevisited/greedy-or-savvy-is-there-a-point-to-pay-for-java-learning-b95b5324c93" rel="noopener noreferrer"&gt;JavaRevisited&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>coding</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Your Step-By-Step Plan to Learn Any Programming Language</title>
      <dc:creator>John Selawsky</dc:creator>
      <pubDate>Mon, 20 Sep 2021 12:22:23 +0000</pubDate>
      <link>https://dev.to/selawsky/your-step-by-step-plan-to-learn-any-programming-language-4n9p</link>
      <guid>https://dev.to/selawsky/your-step-by-step-plan-to-learn-any-programming-language-4n9p</guid>
      <description>&lt;p&gt;Are you finally ready to take up a learning challenge and get some programming skills added to your resume?&lt;/p&gt;

&lt;p&gt;Chances are, you may have already been on this path before and found it difficult to reach the set goals. The reasons could be many. Some people simply can not keep up, some — lose motivation, and others find it overwhelming with all the bits and pieces of programming tutorials and information scattered across the internet.&lt;/p&gt;

&lt;p&gt;It is always going to be a challenge when you start studying a new subject. But as with any skill honing practice, you can make learning a programming language easier with good preparation and a detailed plan.&lt;/p&gt;

&lt;p&gt;If you want to learn to program, you have to make a plan and stick with it. Here we can show you how.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Do You Need A Plan to Learn Programming?
&lt;/h2&gt;

&lt;p&gt;It’s quite straightforward. Let’s find out how to create a clear learning plan for your programming journey that will help you set realistic goals, compare your progress within the time to understand how far you’ve come, and apply practical skills.&lt;/p&gt;

&lt;p&gt;Since I’m a tutor in Java, I’ll give you some examples and advice specifically regarding this language. But by analogy, you can draw up a similar plan for any programming language.&lt;/p&gt;

&lt;p&gt;Here are some of the benefits of having a learning plan summarised:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Break down a large task&lt;/strong&gt; into smaller ones. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;learn the general syntax of the language;&lt;/li&gt;
&lt;li&gt;understand classes, objects, and exception handling;&lt;/li&gt;
&lt;li&gt;learn to work with files and I / O streams;&lt;/li&gt;
&lt;li&gt;master multithreading,&lt;/li&gt;
&lt;li&gt;get acquainted with collections;&lt;/li&gt;
&lt;li&gt;learn the basics of web development,&lt;/li&gt;
&lt;li&gt;learn popular frameworks, like Spring and Hibernate, etc..&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Create a convenient schedule&lt;/strong&gt;. For instance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;every day for 4 hours;&lt;/li&gt;
&lt;li&gt;2 hours on weekdays and 6 hours on weekends;&lt;/li&gt;
&lt;li&gt;only on weekends, or only on weekdays.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Track progress&lt;/strong&gt;. You have to track your progress during the studies and compare it with the planned milestones to understand whether you need to strengthen the training schedule or add new topics to your plan.&lt;/p&gt;

&lt;p&gt;Summarizing what all was said in this small chapter lets us get down to actually writing a plan. Make it simple and highlight the key aspects and benefits you seek from your learning process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create Effective Learning Process
&lt;/h2&gt;

&lt;p&gt;Are you planning to make programming part of your profession? If so, allocate at least 3–4 hours (on weekdays) for daily training. Thus, in about 3–6 months you will grow to the level of a Junior developer.&lt;/p&gt;

&lt;p&gt;Break the learning process into several stages. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;installing the JDK (Java Development Kit) from the Oracle site and IDE (IntelliJ IDEA, Eclipse, or NetBeans);&lt;/li&gt;
&lt;li&gt;learning Java syntax;&lt;/li&gt;
&lt;li&gt;learning Java OOP;&lt;/li&gt;
&lt;li&gt;learning Java Collections;&lt;/li&gt;
&lt;li&gt;studying popular libraries and frameworks;&lt;/li&gt;
&lt;li&gt;learning commonly used APIs (e.g. servlets, JSP, JDBC, JUnit);&lt;/li&gt;
&lt;li&gt;mastering Git, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try to stick to this plan and find a “golden mean” between theory and practice.&lt;/p&gt;

&lt;p&gt;It is important to understand that programming is a practical activity. Many people compare it with the learning of a foreign language. However, it would be more correct to compare it with any sport, for example, swimming, hockey, or tennis. After all, you will not study hockey or tennis from books? Same here, theory alone is not enough. Only daily practice will help you achieve results.&lt;/p&gt;

&lt;p&gt;You can learn Java or any other programming language using the well-known Pareto principle (the 80/20 rule), where 20% is theory and 80% is practice. This is not an exaggeration. Learning to program and developing the skills you need takes 4 times more real practice than reading textbooks or watching lectures.&lt;/p&gt;

&lt;p&gt;However, there is also a trap here: it’s not always easy for beginners to come up with tasks according to their level and adequately check the correctness and the optimality of the solution. Therefore, it is best to find either a mentor or a course with an emphasis on practice and feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  Set Measurable Goals and Monitor your Progress
&lt;/h2&gt;

&lt;p&gt;Your goals have to be accessible and trackable otherwise it’s hard to follow the development of your study.&lt;/p&gt;

&lt;p&gt;Let’s be honest, offline courses or training with individual tutors are very useful, helping you to set the goals and trace the progress. Usually, they last a certain time, for example, six months, and you know that if you study hard enough, for example, the basics of Core Java you will create a small real-life-based project at the end of the track.&lt;/p&gt;

&lt;p&gt;If you are studying on an online course with individual tempo, it is more difficult to understand how much time it takes to study, although it is also possible.&lt;/p&gt;

&lt;p&gt;From my experience, I can tell that one course can take from six months to a year. If you are sufficiently motivated it might be done even faster: within three months.&lt;/p&gt;

&lt;p&gt;As a tutor, I’ll tell you that even a busy person can decently learn Core Java in a year. And if you are determined to find a new job, allocate another six months, to grasp a few advanced technologies.&lt;br&gt;
Check a vacancies site to understand the additional demands for the position you are interested in. In parallel, you can work out questions for interviews.&lt;/p&gt;

&lt;p&gt;Now, when you understand your goals and the time you need to achieve them, let’s move forward, start to monitor the progress.&lt;/p&gt;

&lt;p&gt;For instance, you can do the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Set weekly and monthly goals&lt;/strong&gt;. It is better to make them easily reachable rather than upset yourself by getting behind.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyze the result after the important chapter ends&lt;/strong&gt;. Write down what exactly was achieved. Ask yourself what went well and should be replicated. Ask yourself what should be improved in the next period, and how.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Choose a Course
&lt;/h2&gt;

&lt;p&gt;There are many effective sources you can choose from. Go for multiple platforms for learning, communication, and practice.&lt;/p&gt;

&lt;p&gt;Here are some ways you can evaluate any course, be it an online class or a programming book so that you know that you get both a good theoretical foundation along with enough room for practice.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read reviews of the book or the online course&lt;/li&gt;
&lt;li&gt;Get references from peers&lt;/li&gt;
&lt;li&gt;Research using online forums, discussion groups to find which books or courses are good&lt;/li&gt;
&lt;li&gt;Make sure the course curriculum is directed towards your particular learning goals. A good course structure is a logical learning path with well-defined subparts and tasks that helps you track your learning progress&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The next thing to consider is who are you learning from? Pay attention to the credibility of the course creators and choose creators who are actual programmers and do have the expertise as they claim. Read the reviews, credibility of the certificates given out on completion of the course.&lt;/p&gt;

&lt;p&gt;Additionally, you can look out for the availability of a mobile app for an online course and in-built code validators to help you quickly get your hands-on coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  TOP-4 Courses to Learn Java
&lt;/h2&gt;

&lt;p&gt;Here are some high-quality online learning platforms that you can check out to get started with programming courses.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://codegym.cc/"&gt;CodeGym&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;CodeGym is an online learning gamified course that specializes in Java programming for beginners. It helps learners to practice the Java language offering over 1200 coding tasks in different levels of difficulty.&lt;/p&gt;

&lt;p&gt;CodeGym covers all Core Java topics and even more. You’ll learn the basics of the language, OOP, multithreading, and collections. By solving the tasks, you will quickly move towards the implementation of real-life tasks, such as simple video games or a restaurant emulator.&lt;/p&gt;

&lt;p&gt;There is a built-in validator that checks solutions. If there is something wrong with the solution, the validator sends tips due to help.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://teamtreehouse.com/learn/java"&gt;Treehouse&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This course boasts over 1000 hours of best quality programming videos for everyone from beginners to experts looking to learn a language from scratch or expand their knowledge.&lt;/p&gt;

&lt;p&gt;You can try out the 7-day trial, along with clear sections outlining the time you must follow to avoid wasting time. This approach helps a lot to plan tasks and track results.&lt;/p&gt;

&lt;p&gt;As a beginner without prior knowledge of programming, you will learn the basic structure of Java, console programming, and will get basic tips for creating, reading, and updating the data.&lt;/p&gt;

&lt;p&gt;In addition, the level of each milestone of the course is indicated, from beginner or basic to intermediate and finally to advanced.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.udacity.com/"&gt;Udacity&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is one of the world’s most popular MOOC-based online learning providers. Udacity was born out of an experiment at Stanford University in which Sebastian Thrun and Peter Norvig offered their online course Introducing Artificial Intelligence to everyone free of charge.&lt;/p&gt;

&lt;p&gt;Now the purpose of the platform is to help beginners improve their skills and move up the career ladder. The platform catalog has over 200 courses including data science, cloud data, programming languages including Java, and more.&lt;/p&gt;

&lt;p&gt;Therefore, everyone who wants to improve their knowledge and skills can choose among several training options: free and paid courses. The latter have much wider functionality, there is support for tutors, certificates that you can add to your CV.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.codecademy.com/"&gt;Codecademy&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Codecademy is an interactive online platform that offers courses in 14 different programming languages, including Java. As well as other areas, including web development, computer science, and data science, internal programming.&lt;/p&gt;

&lt;p&gt;The platform has a convenient web-based IDE where you can write code and immediately test it, a section with useful life hacks for completing the task, and a section of frequently asked questions.&lt;/p&gt;

&lt;p&gt;Students can choose the most optimal way of teaching from the three suggested. This can be a free course, Codecademy Pro, and Codecademy Intensive. For beginners who are just getting acquainted with the field of IT, basic courses will be enough, but if you want to get additional programs, take tests, pay attention to two paid tariffs.&lt;/p&gt;

&lt;p&gt;After completing the course, students can complete simple, hands-on activities such as creating a simple app, for example, your own clone of a classical video game (such as Arkanoid or Space Invaders).&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding Additional Theory and Practice Resources
&lt;/h2&gt;

&lt;p&gt;Sometimes you may need more information than what your programming book or online course material could give you. It is always possible to google a specific question, but it is better to have several trustworthy additional resources to get more information. So that is what experts in the field highly recommend doing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First of all, don’t forget to check Java documentation as it is the basis of this programming language. It’s always good to dig to the core of the language.&lt;/li&gt;
&lt;li&gt;Use books, YouTube videos (Derek Banas, ProgrammingKnowledge, thenewboston) tutorials (Tutorial Teachers, TutsPlus, Learn JS),blogs (Softwarehow, SitePoint, David Walsh)&lt;/li&gt;
&lt;li&gt;Use any opportunity to master your practical experience after learning each theory chapter. It can be online exercises, games, and even contests for aspiring programmers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Communicating with Fellow Programmers
&lt;/h3&gt;

&lt;p&gt;One of the biggest mistakes newcomers make is trying to handle all programming difficulties on their own. So, don’t hesitate to turn for help from more experienced fellow programmers. Here are some communities that you can join and get a lot of useful tips and recommendations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://stackoverflow.com/"&gt;Stack Overflow&lt;/a&gt;: this forum was founded in 2008. At this moment it has over 50 million users. You have to log in, ask questions, and there will be some advanced users able to help.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.reddit.com/"&gt;Reddit&lt;/a&gt;: this platform proposes various communication from users over the world.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://coderanch.com/"&gt;Coderanch&lt;/a&gt;: This one is good for both beginners and advanced users. If you are a newbie, you can even learn Java here. Also, the Topics section has articles on coding.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://news.ycombinator.com/"&gt;HackerNews&lt;/a&gt;: on this forum, you can find the news about cybersecurity and hacking.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.freecodecamp.org/"&gt;freeCodeCamp&lt;/a&gt;: this source to learn coding for free, along with videos, news, and interactive classes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Such communities also let you find a huge deal of coding resources, libraries, extensive open-source projects, and more where you can also contribute and share your experiences.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Programming is a long journey, and there will be something new to learn every new day. It can be challenging and rewarding at the same time. Do not hesitate to take the first step. Just focus on your everyday goals, and as you complete the things in front of you today, tomorrow, and the day after, you will soon be happy seeing the results and the growth you have had.&lt;/p&gt;

&lt;p&gt;First published on &lt;a href="https://medium.com/javarevisited/your-step-by-step-plan-to-learn-any-programming-language-cf4928afadb2"&gt;JavaRevisited&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>coding</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Common Mistakes You Make While Learning Programming Languages and How to Avoid Them</title>
      <dc:creator>John Selawsky</dc:creator>
      <pubDate>Mon, 20 Sep 2021 11:42:55 +0000</pubDate>
      <link>https://dev.to/selawsky/common-mistakes-you-make-while-learning-programming-languages-and-how-to-avoid-them-56m2</link>
      <guid>https://dev.to/selawsky/common-mistakes-you-make-while-learning-programming-languages-and-how-to-avoid-them-56m2</guid>
      <description>&lt;p&gt;Mistakes are an inevitable part of everyone’s life. But, there is no reason to feel afraid or embarrassed by anything you might make. After all, they help us learn better and grow further. The same is applicable for computer programming courses. You will stumble, you will fall, but you will come back better and stronger for it.&lt;/p&gt;

&lt;p&gt;So, what are some of the most common mistakes that newbie programming language learners make?&lt;/p&gt;

&lt;h2&gt;
  
  
  Diving into a Research Zone
&lt;/h2&gt;

&lt;p&gt;Forget the idea that researching as much as you can while learning programming languages will help you along. Too much research usually leads to a hell loop where there is way too much information, more than you need really.&lt;/p&gt;

&lt;p&gt;Practicing programming is significantly more important than cramming up on too much theory during the initial stages of learning a programming language. Later, when you get your first projects or start off with interviews, you can easily get back to theory and revise as much as needed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Piece of Advice
&lt;/h3&gt;

&lt;p&gt;Set an accessible goal. Remember it is much easier to deal with milestones that come one after another than a long-term goal which seems way too far away to even begin with. Only look for the relevant information you need to start the course. Coding and incessant practice, not theory is what will get you to the top.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning Too Many Languages All at Once
&lt;/h2&gt;

&lt;p&gt;This section will put a clear emphasis on the idiom — “Jack of all trades and master of none”. Learning different programming languages within various frameworks and attending multiple courses, seminars, and webinars dedicated to all these programming languages will not make you smarter or more knowledgeable.&lt;/p&gt;

&lt;p&gt;Instead, you will get more and more confused and waste a lot of time and maybe even money and end up learning all these languages in a half-hearted manner. It is a classic case of not having a proper goal or direction to focus your mind on.&lt;/p&gt;

&lt;h3&gt;
  
  
  Piece of Advice
&lt;/h3&gt;

&lt;p&gt;The only thing you can do to avoid making this mistake is to make sure you learn and master one language before moving on to the next one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lack of Practice
&lt;/h2&gt;

&lt;p&gt;Coding demands repetition. You need to put in some amount of effort every single day in order to get anywhere at all with coding. Everyone has other responsibilities, of course, but trying to set aside even twenty minutes in a day to practice some coding can work wonders for your programming language learning goal.&lt;/p&gt;

&lt;p&gt;People usually start out to learn coding in a very enthusiastic manner. But, as they stumble and make some mistakes, and as real-life catches up with them, they slowly lose the high levels of energy they had in the beginning. That simply won’t do.&lt;/p&gt;

&lt;p&gt;Making sure that you keep the interest in coding intact is the first step to not missing out on practice. If you do not practice regularly and constantly put in huge gaps between your coding sessions, then learning to code will go in vain. Start with easier tasks, so that you do not get frustrated and carry on with practicing instead of giving up the moment you hit a roadblock.&lt;/p&gt;

&lt;h3&gt;
  
  
  Piece of Advice
&lt;/h3&gt;

&lt;p&gt;Understand the basics in the beginning. These include the underlying ideas, the frameworks, the data structures, and the design patterns behind programming languages. But, most importantly, keep practicing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Can You Start with Learning to Code?
&lt;/h2&gt;

&lt;p&gt;The following are a few places you can check out for some of the best preliminary coding courses:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://codegym.cc/"&gt;CodeGym&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This is a learning platform for pure Java with 1200+ tasks to test your skills, both simple with just theory assimilation to complex with the creation of applications like video games or restaurant emulators. The lectures are compact and efficient and there is a built-in validator to check the solutions and help if required. Also, you will never be bored with robot stories which help you learn Java easily.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.codecademy.com/"&gt;Codecademy&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Hugely popular, this one offers free language courses and technical skillset training, through interactive learning. There are mini sandboxes after every course ends to let you execute codes and check if you have been able to learn anything from the article just before. Only then can you move on.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://teamtreehouse.com/"&gt;Treehouse&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;This one boasts 1000+ hours of the best quality videos on programming for everyone, from beginners to experts who want to learn more. What is more, is the tracking feature that helps you to make a roadmap to know what to learn next. There is a 7-day trial that you can try out, alongside clear time-marked chapter divisions for you to follow so that you do not end up wasting any time. The level of each course milestone is also provided, going from beginner or easy to intermediate and finally to advanced.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Stuck on a Programming Task
&lt;/h2&gt;

&lt;p&gt;There inevitably comes a time when you get stuck on a particular coding problem. It might make you lose focus and start regretting the entire course if you do not handle it within time. Here are some tricks to get you unstuck and out of a whole lot of turmoil in a jiffy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Make sure you understand the problem completely:&lt;/strong&gt; Articulate the problem to yourself first. Ask yourself questions as to whether you are well-acquainted with the problem and if the problem is well defined at all or not. Figure out smaller steps to meet your goals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Try and try again:&lt;/strong&gt; Trying some changes, whatever they might be, might just be the answer to your dilemma. 9 times out of 10, trying something out works perfectly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Take advice from others:&lt;/strong&gt; Asking others, even an inanimate object, is almost like projecting your problems and getting answers all on your own, without the other person even uttering a single word. It even works through text messages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use the forum:&lt;/strong&gt; Putting up questions on programming forums is a great way to get some community help from like-minded coders like you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Try a bad way:&lt;/strong&gt; If the good ideas do not work, try a bad idea that you never thought would work. Even if it does not solve the code, it could put things into perspective.
Read the problem again: Study the problem again and again and then take help from the theory that works with it. That is usually enough.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test it out:&lt;/strong&gt; Write tests to your codes. This is a useful debugging solution that helps you keep the risks away and focus fully on the solution instead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Give yourself a break:&lt;/strong&gt; Take a tiny break from working. Go for a walk somewhere or take a power nap. This usually puts things into perspective.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do something else:&lt;/strong&gt; The last resort is usually to work on some other problem or go make yourself a cup of tea.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Piece of Advice
&lt;/h3&gt;

&lt;p&gt;Take a tiny break, and leave the problem for a while. Maybe try to solve some other problem. Read some theory if you have simply forgotten about the problem. Maybe you will be able to work it out then!&lt;/p&gt;

&lt;h2&gt;
  
  
  Coding in Isolation
&lt;/h2&gt;

&lt;p&gt;When it comes to coding, having a community to reach out to when you get stuck in some coding problems is a blessing. Be a member of meet-ups or coding alliances by participating in coding platforms. Programmers can talk to each other, learn more, and vent when the going gets tough.&lt;/p&gt;

&lt;p&gt;Here are some programming communities which you can join right away:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://stackoverflow.com/"&gt;Stack Overflow&lt;/a&gt;:&lt;/strong&gt; With over 50M users, this forum was launched in 2008. You just have to log in, ask questions or even give solutions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.reddit.com/"&gt;Reddit&lt;/a&gt;:&lt;/strong&gt; Just log in to place questions or give solutions for any technological problem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://coderanch.com/"&gt;Coderanch&lt;/a&gt;:&lt;/strong&gt; This one is good for both beginners and advanced coders. If you are a newbie, you can even learn Java here. Also, the Topics section has articles on coding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://news.ycombinator.com/"&gt;HackerNews&lt;/a&gt;:&lt;/strong&gt; All the news about cybersecurity and hacking can be found right here in this forum.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.freecodecamp.org/"&gt;freeCodeCamp&lt;/a&gt;:&lt;/strong&gt; Learning coding for free, along with videos, articles, and interactive classes can be found right here.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://www.quora.com/"&gt;Quora&lt;/a&gt;:&lt;/strong&gt; Ask questions on Quora just like Reddit by logging in and get answers from tech experts all over the world.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Lack of Backups of Your Work
&lt;/h2&gt;

&lt;p&gt;Lacking backup cannot ever be something that a coder says. This will make you lose long hours of work. Uploading them to your Google Drive or Github are foolproof yet easy ways to keep backups of your codes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Piece of Advice
&lt;/h3&gt;

&lt;p&gt;Pick out the tool which is most convenient for you and keep backups of your codes, no matter what.&lt;/p&gt;

&lt;h2&gt;
  
  
  Giving Up Too Early
&lt;/h2&gt;

&lt;p&gt;Programming is not learned at the drop of a hat. Being good enough requires lots of patience, focus, discipline, effort, energy, time, and interest in coding. Getting frustrated the moment you hit a snag will never let you get to advanced programming modules. Learning from your mistakes is the first step in this coding journey. But, it is even better to look at common mistakes that others have made before you and try to avoid them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Piece of Advice
&lt;/h3&gt;

&lt;p&gt;Have patience and do not get frustrated easily. You will get to an advanced level fast enough that way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Programming cannot be learned in one go. Being steady, setting goals, and retaining your interest in coding is the first step towards achieving your long-term goal of creating a career in this field. For beginners, it is important to choose a simple and holistic programming language. What is better than to learn Java? If you are worried about making copious mistakes, then go through this article to learn which ones not to make!&lt;/p&gt;

&lt;p&gt;First published at &lt;a href="https://levelup.gitconnected.com/common-mistakes-you-make-while-learning-programming-languages-and-how-to-avoid-them-d23afdade26"&gt;GitConnected&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>coding</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
