"<p>You want to learn programming and be the Mr. Robot of your own show. But that’s not as easy as it sounds, is it?</p> <p>Since you’re here I’m assuming you’re either an absolute coding beginner who needs to read this <a href="https://devbrains.tn/blog/best-programming-language-you-should-learn-in-2021">introduction to the world of bugs</a> or a new member of the programming family (in that case welcome!).</p> <p>Either way, what you’re looking for is a roadmap, to guide you through your learning journey.</p> <p>Well, not to brag, but you’re in The right place.</p> <hr /> <p>Here's our agenda:</p> <ol> <li><a href="#The Wrong Approach to Learn Programming">The Wrong Approach to Learn Programming</a></li> <li><a href="#The 5-Step Process of Learning any Programming Language">The 5-Step Process of Learning any Programming Language</a></li> <li><a href="#Learn Programming for Free at DevBrains">Learn Programming for Free at DevBrains</a></li> <li><a href="#Let’s Sum Up">Conclusion</a></li> </ol> <hr /> <p>Before I give you the recipe you’re looking for, I would like to throw some light on the number one reason stopping most people from becoming great programmers (I see you want to skip this, obviously I can’t stop you, but I don’t think you should).</p> <p> </p> <h1><a id="The Wrong Approach to Learn Programming" name="The Wrong Approach to Learn Programming">The Wrong Approach to Learn Programming</a></h1> <p><strong> T</strong>here are thousands of coding courses on the Internet (most of which are GREAT), with millions of people studying them. It's shocking that so few people finish a Coding 101 course on Udemy or Coursera compared with how many people enrolled. </p> <p> </p> <p>What if I told you that almost all of those who gave up in the middle of the road have one thing in common? </p> <p> </p> <p>It’s not laziness or unproductivity. But a <strong>common mistake</strong> so many new programmers tend to fall in.</p> <p> </p> <p>Most of these people are motivated, and full of energy to start their dream career. They buy a book, a course, or watch a random Youtube tutorial. For the first days, they’re excited and eager to learn. After a 20min tutorial, they’d say “<em>This is so easy! I think I’m gonna skip it and go do real code”</em></p> <p>At first, it’s perfect, and they seem to be the coding master they think they are. But the moment they start their first project, they hit a bottom. </p> <p>They start questioning themselves <em>“Am I really meant to code?”</em> “<em>Do I really have what it takes?”</em>, and eventually give up.</p> <p>Their mistake?</p> <div style="background:#eeeeee; border:1px solid #cccccc; padding:5px 10px">Algorithms</div> <p>In every program, algorithms determine how a problem will be resolved. These algorithms are essential because there is more than one way to solve the same problem. In fact, in a research done by professors Anna Eckerdal, Michael Thuné, and Anders Berglund from Uppsala University (“What does it take to learn 'programming thinking?”),  some students use the word ’<strong>logic</strong>’ when they discuss how to think when they learn to program. This is how one student described it:</p> <p><em>"It is the understanding of how the programming language is built rather than the specific command,...., it’s more the thinking itself, the l<strong>ogical thinking</strong>."</em></p> <p>That being said, learning algorithms is going to be a major step in our roadmap.</p> <p>After knowing what you shouldn’t do, let’s get into what you should do to learn to program effectively and efficiently.</p> <p> </p> <h1><a id="The 5-Step Process of Learning any Programming Language" name="The 5-Step Process of Learning any Programming Language">The 5-Step Process of Learning any Programming Language</a></h1> <p>I know. There is no “best way” to learn anything, not just coding. However, I’ve noticed, from my own experience and others around me, that we seem to naturally go through the same process. And after some research, I realized it’s not just me and my coder friends, it’s millions of programmers who choose to follow this process. </p> <p>And, I can promise you one thing, <strong>it works</strong>.</p> <p><strong>Note:</strong> It is possible to perform these steps simultaneously. It is only for clarity that I have numbered them.</p> <h2> </h2> <h2>1. Choose a Programming Language</h2> <p>Your first logical thinking exercise is choosing a programming language, to some extent, this choice will determine the efficiency of your learning journey. </p> <p><strong>Beginners, Don’t Start with Python!</strong></p> <p>For a weird reason, many people (especially beginners) choose Python.</p> <p>Here’s how some research back it up: </p> <p><em>"The easiest thing in Python is to write “Hello World” program. Most programming languages require writing a lot of specific methods, or functions, class or program declarations, etc. But Python gives the ability to start programming without those requirements."</em></p> <p><em>Journal of Physics: Conference Series 423 (2013) 012027</em></p> <p>They even back it up with visuals:</p> <p><a href="https://i.postimg.cc/qRXzCpvq/Python-is-Easy.png"><img alt="Python as a first programming language" src="https://i.postimg.cc/qRXzCpvq/Python-is-Easy.png" style="height:348px; width:744px" /></a></p> <p><br /> Let me ask you a question: Are you looking for the easiest way around?</p> <p>If you are, then these arguments will sound logical to you. But to someone who wants to thrive and shake the coding community one day, this is nonsense! </p> <p> </p> <p>Then what programming language should you start with if you’re an absolute beginner? </p> <p>DevBrains says <strong>C</strong>! Take it from someone who knows both languages: Once you learn C, every programming language will seem easy, not just Python.</p> <p><strong>I’m not a Beginner</strong></p> <p>If you’ve already got a few programming languages under your belt, and happen to speak Arabic, there is a list of 100% Free tutorials waiting for you:</p> <ul> <li> <p>Easy Admin 3</p> </li> <li> <p>Symfony 5</p> </li> <li> <p>Python</p> </li> <li> <p>Database creation</p> </li> <li> <p>And more</p> </li> </ul> <p>You can simply access them and start learning now: <a href="https://devbrains.tn/tutorials"><strong>GET STARTED</strong></a></p> <p> </p> <h3><strong>Mistakes to Avoid </strong></h3> <p>There are basically two mistakes that you should avoid at this stage:</p> <ul> <li> <p>Don’t skip any step: Some details may seem obvious to you, but if you skip them, you’ll end up messing up every project you work on. So take my advice, and work on understanding the fundamentals of the programming language you chose.</p> </li> <li> <p>Stick to one language: I know, you’ve just your coding journey, you’re excited and want to shake things up. However, if you learn more than one language at once, you might end up messing things up instead.</p> </li> </ul> <p> </p> <h2>2. Learn Data Structures & Algorithms</h2> <p>Data structures, as well as algorithms, should be studied thoroughly. Programming is all about data structures and algorithms. </p> <p> </p> <p>You will be solving many problems to sharpen you’re “programmic thinking” skills. Here are 3 tips that’ll ease the process:</p> <ol> <li> <p>Solve problems on your own (no cheating)</p> </li> <li> <p>Using existing algorithms, understand how problems are solved</p> </li> <li> <p>Come up with original ideas and implement them. </p> </li> </ol> <h2> </h2> <h2>3. Practice, Practice, Practice</h2> <p>Practice makes perfect, even in coding.</p> <p>That’s why you should focus all of your efforts on it. </p> <p>Try to solve as many problems as you can, and don’t be afraid of getting stuck, because you will. In fact, I don’t think there is a single programmer on earth who hasn’t spend their vacation trying to come up with a solution to some problem instead of chilling out.</p> <p><strong>How many hours a day should you spend coding?</strong></p> <p>Glad you asked.</p> <p>This number will absolutely depend on your level of progress, however, we’ve come to a formula for that at DevBrains:</p> <ul> <li> <p>30min-1hr/day for absolute coding beginners</p> </li> <li> <p>1-3 hrs/day for intermediate coders</p> </li> <li> <p>3-4 hrs/day for advanced coders</p> </li> </ul> <p>To have a more in-depth understanding of this formula, you can have a look at <a href="https://devbrains.tn/blog/the-perfect-number-of-daily-hours-you-should-spend-learning-code">The Perfect Number of Daily Hours You Should Spend Learning Code.</a></p> <p> </p> <h2>4. Work on Personal Projects</h2> <p>Once you’ve reached a level where you can solve quite complex and big problems, random exercises on the internet will seem boring to you. </p> <p>At that stage, you may want to start working on your own personal project. </p> <p>You get to work on what they want without anyone telling you what you should and should not do. A side project could be as simple as building a simple app, or it could be as complex as building a website. If you don't have an idea, here are <a href="https://www.codementor.io/@npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef">40 Side Project Ideas for Software Engineers</a> to take some inspiration from.</p> <p>It is important that your work be visible to others, one known platform to do this is <a href="https://github.com/">GitHub</a>.</p> <p> </p> <h2>5. Get Programming Experience</h2> <p>Now that you successfully completed your own personal projects, you’re absolutely ready to take it to the next level and get some professional experience that you can stick to your CV as a bonus.</p> <p>Here are <a href="https://devbrains.tn/blog/8-precious-tips-to-help-you-get-programming-experience-in-2021">8 Precious Tips To Help You Get Programming Experience</a> and master the programming language you’ve chosen.</p> <p> </p> <h2><a id="Learn Programming for Free at DevBrains" name="Learn Programming for Free at DevBrains">Learn Programming for Free at DevBrains</a></h2> <p>You’re ready to start a new journey and sail the sea of code. We’re gifting you a free ship at your disposal.</p> <p>At DevBrains, we offer free coding tutorials covering various technologies in Tunisian dialect. You can start learning today by simply registering here:</p> <p><section class="section-wrapper bg-light" style=" -webkit-text-size-adjust: 100%; -webkit-tap-highlight-color: rgba(0,0,0,0); --blue: #007bff; --indigo: #6610f2; --purple: #6f42c1; --pink: #e83e8c; --red: #dc3545; --orange: #fd7e14; --yellow: #ffc107; --green: #28a745; --teal: #20c997; --cyan: #17a2b8; --white: #fff; --gray: #6c757d; --gray-dark: #343a40; --primary: #007bff; --secondary: #6c757d; --success: #28a745; --info: #17a2b8; --warning: #ffc107; --danger: #dc3545; --light: #f8f9fa; --dark: #343a40; --breakpoint-xs: 0; --breakpoint-sm: 576px; --breakpoint-md: 768px; --breakpoint-lg: 992px; --breakpoint-xl: 1200px; --font-family-sans-serif: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; --font-family-monospace: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; font-size: 1rem; font-weight: 400; line-height: 1.5; color: #212529; text-align: left; font-family: Inter,serif; box-sizing: border-box; display: block; background-color: #f8f9fa!important;"><div class="col-md-11 row offset-md-1 col-sm-12"><div class="col-md-6 col-sm-12 m-auto"><div class="m-0 font-weight-bolder bt-3 text-primary">Master<div class="dark-blue d-inline"> coding</div></div> <div class="bt-2">Learn and improve your coding skills <br> thanks to our free tutorials in <b class="font-weight-bolder text-primary">Tunisian </b><div class="dark-blue d-inline">dialect.</div></div> <a href="/register" style="text-decoration: none;"><button type="button" class="btn btn-primary btn-lg px-4 me-sm-3 mr-2">Create an Account</button></a> <a href="/tutorials" style="text-decoration: none;"><button type="button" class="btn btn-outline-primary btn-lg px-4 mt-sm-460">Get Started</button></a></div> <div class="col-md-6 col-sm-12"><img src="/build/images/intro.gif" alt="Start Coding Like a pro With DevBrains" class="img-fluid"></div></div></section></p> <p>Currently, DevBrains has the following technologies covered:</p> <ul> <li> <p>Symfony 5</p> </li> <li> <p>API REST</p> </li> <li> <p>Python </p> </li> <li> <p>Flutter</p> </li> </ul> <p>Many more are to come, in the simplest way possible! </p> <h1> </h1> <h1><a id="Let’s Sum Up" name="Let’s Sum Up">Let’s Sum Up</a></h1> <p>Now let’s sum up all of that in a few lines, sometimes my lazy self jumps to this section too.</p> <p>Although there is no “universal way” to learn programming, we have a roadmap that we followed and found to be quite effective.</p> <p>It’s made of 5 steps:</p> <p>1. Choosing a programming language: we don’t hate Python ( we actually have a complete playlist of tutorials for it), we just believe that it’s not the perfect first language for a beginner.</p> <p>2. Learning data structures and algorithms</p> <p>3. Practicing daily</p> <p>4. Working on personal projects</p> <p>5. Getting programming experience </p> <p> </p> <p>If you happen to be an experienced programmer, how was your approach? Is it similar to ours? Let us know in the comment section.</p> <p> </p> <p> </p> <p> </p>"