Becoming a Software Programmer Based on Science

George Hulpoi15 min read · Jan 17

The IT industry is rapidly gaining popularity, with countless courses highlighting only the benefits of entering this field. They promise higher earnings, fewer problems, and a life where money seems to fall from the sky. However, these courses often exploit individuals who are genuinely trying to improve their lives, offering exaggerated promises and expensive fees.

For instance, a three-month course might cost $3,000, with assurances that you'll recoup your investment within six months through employment. Some even guarantee a job. But this article aims to guide you on becoming a software programmer grounded in scientific principles. You'll frequently encounter insights from Daniel Goleman, a renowned author known for his work in neuroscience and psychology. In addition to Goleman's expertise, I will share my experiences as a Computer Science Engineer.

We'll explore topics such as the brain, neural networks, effective learning strategies, and setting realistic expectations.

Summary

Our brains are fascinating and incredibly complex, with a vast network of neurons that form the foundation of how we learn and perform various activities. Each task we engage in, from writing to walking, is supported by a specific neuronal network. These networks are interconnected, allowing us to perform tasks seamlessly once they are learned.

Consider learning to drive. Most people don’t have a driving-related neuronal network when they first start learning, but within a few months, they can drive proficiently without needing to concentrate intensely. This is because our brains are capable of creating new neurons and synapses, effectively expanding our neuronal networks. When you can perform a task with ease, it’s a sign that your neural network has grown and adapted.

Daniel Goleman discusses how outdated assumptions about neuroscience have been debunked. He states:

Here too old assumptions in neuroscience crumble. Even today some students are taught that once we are born, the brain cannot manufacture new cells. This theory has now been soundly disproven. In fact, we know that the brain and spinal cord contain stem cells that turn into new neurons at the rate of thousands a day. The pace of neuron creation peaks during childhood but continues into old age.

Daniel Goleman, Social Intelligence

This neuroplasticity means that learning is a lifelong process. As Goleman explains:

Once a new neuron has come into being, it migrates to its position in the brain and, over the course of a month, develops to the point where it makes about ten thousand connections to other neurons dispersed throughout the brain. Over the next four months or so, the neuron refines its connections; once these pathways are linked, they are locked in. As neuroscientists like to say, cells that fire together wire together.

Daniel Goleman, Social Intelligence

However, learning varies from person to person. Some children learn quickly, while others take more time. Genetics, mutations, and early life experiences significantly influence brain development, resulting in unique neural networks for each individual. This diversity explains why people have different talents and aptitudes.

It's important to note that even if you didn’t excel in mathematics at school, it doesn’t mean you can’t succeed in the IT field. While someone with a naturally large logical-mathematical neural network may find it easier, effort and persistence can lead anyone to the same destination, albeit at different times and with varying levels of effort.

Understanding how our brains learn helps us appreciate the potential for growth and development in any field, including software programming. With dedication and the right approach, anyone can expand their neuronal networks and achieve their learning goals.

While many courses boast that they can transform you into a programmer in just a few months, this claim often seems overly optimistic. Typically, a Computer Science degree takes 3-4 years, during which students are gradually introduced to various subdomains of IT. This comprehensive education is crucial because the field of IT is not only vast but also rapidly evolving. It’s hard to imagine how a short course of 3-6 months could equate to the depth and breadth of a college education, even if the course is focused on a specific branch of IT. It’s akin to trying to become a surgeon with only a couple of years of training without a foundational understanding of medicine. Would you trust your health to someone with such limited training?

The world of IT is intricate and constantly changing. While much is said about its benefits, the hard work and extensive knowledge required are often downplayed. If a field is well-compensated, it’s usually because not everyone can excel in it.

To be clear, after a short course, you might be able to accomplish some tasks and feel competent because you’re practicing exactly what you’ve been taught. However, today’s applications are increasingly complex, and you’ll face challenges you’ve never encountered before. For instance, creating a simple version of Facebook or YouTube might be achievable after years of practice, but making it robust enough to support billions of users simultaneously, ensuring speed, cybersecurity, and stability, is another matter entirely. These are the skills sought by major tech companies, which require employees who understand these complexities, not just those who can replicate a website on their local machines.

To succeed in IT, you need a broad understanding of various topics, including mathematics, logic, programming languages, data structures, algorithms, databases, object-oriented programming, computer basics (like binary systems and calculus), statistics, operating systems, cybersecurity, artificial intelligence, and distributed systems, among others. While you won’t need to specialize in all of these areas, you will need a foundational understanding because many complex applications draw from almost every branch of IT.

Given this, is the effort worth it? Start by taking a logical reasoning test that doesn’t involve math or programming. This can help determine if the path will be easier or more challenging for you. If you have a passion for building digital things, it can significantly accelerate your learning process, as explained in the Learn How to Learn section.

If your test results are positive and you enjoy creating digital (or even physical) projects, then pursuing a career in IT is likely worthwhile. However, if your results are less favorable and you’re primarily motivated by the potential benefits of an IT job, consider the following:

  • You might end up working harder if you secure a job, possibly working 10-12 hours instead of the standard 8. The stress of meeting expectations and delivering results could leave you with less free time and more stress, potentially leading to health issues that require spending your earnings on medical treatments. In this case, the financial reward might not be worth the personal cost.
  • If you manage to get a job without substantial knowledge (perhaps through less ethical means), you might try to avoid work. While some companies hire to meet client expectations, this can lead to job loss if your lack of contribution becomes evident.

If you’re determined to pursue this path, the next step is to learn how to learn effectively.

Learning is a journey, and while it may seem straightforward, the complexity of the subject matter can make it challenging. In the IT domain, learning isn't just about memorizing formulas or solving predefined problems; it's about expanding your logical-mathematical neural network. As a software developer, you'll constantly face new challenges, some of which no one has encountered before.

In this section, we'll explore strategies to enhance your learning process and help you become a more effective learner.

Watching tutorials or listening to lectures alone won't make you a proficient programmer. While they provide valuable information, they aren't substitutes for hands-on practice. Edgar Dale's Cone of Learning suggests that people generally remember 10% of what they read, 20% of what they hear, and 30% of what they see. However, they retain up to 90% of what they actively do.

Edgar Dale's Cone of Experience

Caption: Edgar Dale's Cone of Experience

This concept aligns with Daniel Goleman's insights:

During this five-or-six-month period, personal experience dictates which neurons the newborn cell will connect with. The more often an experience repeats, the stronger the habit becomes, and the denser the resulting neural connectivity. Meaney has found that in mice repetitive learning speeds the rate at which new neurons integrate into circuits with other neurons. In this way the brain continues to be redesigned, as new neurons and their connections are put in place.

Daniel Goleman, Social Intelligence

By actively engaging in coding projects and solving real-world problems, you reinforce your learning, making it more durable and effective. Practice not only solidifies knowledge but also helps you develop problem-solving skills that are crucial in software development.

Daniel Goleman, in his book "Focus" emphasizes the critical role that concentration plays in achieving high performance. Neuroscience supports the idea that when you're learning something new, full focus is essential. A wandering mind simply cannot absorb information at its full potential. If you find yourself distracted by Instagram or YouTube after just ten minutes of study, it indicates that your focus isn't where it needs to be.

To truly learn effectively, you must train your brain to concentrate solely on the task at hand. Consider focus as a muscle that can be strengthened with practice. Goleman states:

Learning how to improve any skill requires top-down focus. Neuroplasticity, the strengthening of old brain circuits and building of new ones for a skill we are practicing, requires our paying attention: When practice occurs while we are focusing elsewhere, the brain does not rewire the relevant circuitry for that particular routine. Daydreaming defeats practice; those of us who browse TV while working out will never reach the top ranks. Paying full attention seems to boost the mind’s processing speed, strengthen synaptic connections, and expand or create neural networks for what we are practicing.

Daniel Goleman, Focus

When you first start tackling problems in software development, you'll often find that many of them are common enough to have readily available solutions online. It's tempting to quickly search on Google or ask ChatGPT for answers, but this approach can hinder your learning and growth. While spending an entire month trying to solve a single problem might not be practical, it's crucial to strike a balance and resist the urge to take shortcuts.

Why avoid the easy path? Because facing challenges head-on creates a beneficial type of stress for your brain, which can significantly enhance your learning. Just as a cold shower can invigorate your immune system or running can strengthen your heart, grappling with difficult problems can stimulate your brain to adapt and grow stronger. Your brain is like a muscle—when you challenge it with proper training, it becomes more robust and capable.

Remember, when you're working through material that is complex or academic, and you find it challenging to understand, there are resources available to help. You might find a helpful explanation from a knowledgeable individual on YouTube, or you can ask ChatGPT to simplify the concepts for you. These tools can be valuable, but use them wisely to complement your learning journey rather than replace it.

Ultimately, embracing challenges and avoiding the easy path will help you develop the resilience and critical thinking skills necessary to excel as a software programmer. This approach not only strengthens your brain but also prepares you for the ever-evolving challenges you'll encounter in the IT domain.

Just like any intense workout, your brain needs time to rest and recover after periods of rigorous learning. Daniel Goleman highlights the importance of breaks in maintaining optimal performance:

Focused attention, like a strained muscle, gets fatigued. Ericsson finds worldclass competitors—whether weight lifters, pianists, or a dog sled team—tend to limit arduous practice to about four hours a day. Rest and restoring physical and mental energy get built into their training regimen. They seek to push themselves and their bodies to the max, but not so much that their focus gets diminished in the practice session. Optimal practice maintains optimal concentration.

Daniel Goleman, Focus

Your brain continues to work even when you're not actively engaged in learning. It processes information, solves problems, and makes connections subconsciously. Goleman explains:

A classic model of the stages of creativity roughly translates to three modes of focus: orienting, where we search out and immerse ourselves in all kinds of inputs; selective attention on the specific creative challenge; and open awareness, where we associate freely to let the solution emerge—then home in on the solution.

Daniel Goleman, Focus

The manner in which you relax is crucial. Simple activities like scrolling on your phone or playing video games might not provide the mental relaxation your brain needs. Nature, however, can play a significant role in this process. Isaac Newton famously discovered gravity while relaxing under a tree, illustrating how a change of scenery can foster creativity and insight.

Try switching from the effort of top-down control to more passive bottom-up activities, taking a relaxing break in a restful setting. The most restful surroundings are in nature, argues Stephen Kaplan at the University of Michigan, who proposes what he calls “attention restoration theory.” Such restoration occurs when we switch from effortful attention, where the mind needs to suppress distractions, to letting go and allowing our attention to be captured by whatever presents itself. But only certain kinds of bottom-up focus act to restore energy for focused attention. Surfing the Web, playing video games, or answering email does not. We do well to unplug regularly; quiet time restores our focus and composure. But that disengagement is just the first step. What we do next matters, too. Taking a walk down a city street, Kaplan points out, still puts demands on attention—we’ve got to navigate through crowds, dodge cars, and ignore honking horns and the hum of street noise. In contrast, a walk through a park or in the woods puts little such demand on attention. We can restore by spending time in nature—even a few minutes strolling in a park or any setting rich in fascinations like the muted reds of clouds at sunset or a butterfly’s flutter. This triggers bottom-up attention “modestly,” as Kaplan’s group put it, allowing circuits for top-down efforts to replenish their energy, restoring attentiveness and memory, and improving cognition. A walk through an arboretum led to better focus on return to concentrated tasks than a stroll though downtown. Even sitting by a mural of a nature scene —particularly one with water in it—is better than the corner coffee shop.

Daniel Goleman, Focus

Incorporating these restful periods into your learning routine can help maintain your mental agility and improve your overall learning experience.

As you embark on your journey to become a software programmer, it's crucial to understand the value of feedback in honing your skills. Just as artificial neural networks are designed to learn from inputs and outputs, our human brains rely on feedback to grow and improve. When learning something new, feedback acts as a guiding compass, helping us recognize what we’ve done well and where we need improvement.

In the early stages of your learning, especially when working on projects or tackling complex problems, you may not always have the luxury of real-world scenarios to test your solutions. This is where feedback from seasoned professionals becomes invaluable. They can offer insights and corrections that help you refine your approach and ensure you’re on the right path.

In a traditional college setting, professors and instructors provide this critical feedback. However, if you're pursuing a self-taught route, it’s important to seek out other avenues for professional guidance. Engaging with online communities such as Reddit or Stack Overflow can be beneficial, but remember to verify the credibility of the advice you receive. Networking with industry professionals, joining coding bootcamps, or finding a mentor can also provide the expert feedback you need.

Smart practice always includes a feedback loop that lets you recognize errors and correct them—which is why dancers use mirrors. Ideally that feedback comes from someone with an expert eye—and so every world-class sports champion has a coach. If you practice without such feedback, you don’t get to the top ranks.

Daniel Goleman, Focus

By actively seeking out constructive criticism and expert advice, you can accelerate your learning process and increase your chances of success in the field of software programming.

Daniel Goleman highlights the significant impact that stress and anxiety can have on your ability to learn effectively.

Whatever a student hears in class or reads in a book travels these pathways as he masters yet another iota of understanding. Indeed, everything that happens to us in life, all the details that we will remember, depend on the hippocampus to stay with us. The continual retention of memories demands a frenzy of neuronal activity. In fact, the vast majority of neurogenesis—the brain’s production of new neurons and laying down of connections to others—takes place in the hippocampus. The hippocampus is especially vulnerable to ongoing emotional distress, because of the damaging effects of cortisol. Under prolonged stress, cortisol attacks the neurons of the hippocampus, slowing the rate at which neurons are added or even reducing the total number, with a disastrous impact on learning. The actual killing off of hippocampal neurons occurs during sustained cortisol floods induced, for example, by severe depression or intense trauma. (However, with recovery, the hippocampus regains neurons and enlarges again.) Even when the stress is less extreme, extended periods of high cortisol seem to hamper these same neurons.

Daniel Goleman, Social Intelligence

To optimize your learning potential, it's crucial to maintain a stable emotional state. If you find yourself experiencing stress or anxiety, incorporating practices like meditation can be immensely beneficial. By fostering a calm and focused mind, you can create an environment conducive to learning and personal growth.

If you've made it to this section, congratulations! You're clearly motivated and ready to embark on your journey to becoming a Software Developer. But you might be asking yourself, "Where do I start?" The most crucial skill you can develop at the outset is the ability to articulate your problems clearly and conduct effective searches for solutions.

When you can break down a problem into simple, clear words, you're already halfway to solving it. So, if your goal is to become a Software Developer but you're unsure how to begin, try framing the problem like this: "I need a comprehensive plan detailing the knowledge and skills required to become a Software Developer."

A quick search on Google might lead you to a variety of suggestions, including:

  • Enrolling in a Computer Science College.
  • Learning programming languages and understanding mathematics, data structures, algorithms, and other foundational topics.

While some resources, like ChatGPT, might suggest short courses or focusing on a single programming language, more thorough advice—like that from Gemini—emphasizes a broader range of topics, including Algorithms, Data Structures, Operating Systems, Cybersecurity, Design Patterns, and Databases.

I recommend taking a cue from these broader suggestions. Colleges design their Computer Science curriculums based on current job market demands, ensuring that what you'll learn is directly applicable to becoming a proficient Software Developer.

If you're considering the self-taught route, which is entirely feasible, remember that many college curriculums are publicly available. For instance, the Open Source Society University (OSSU) offers a comprehensive Computer Science curriculum on GitHub that can guide your studies: OSSU Computer Science Curriculum. Additionally, you can explore specific college curriculums like the one from Dickinson University: Dickinson University Computer Science Curriculum.

The key takeaway here is that while I won't hand you a detailed checklist of topics to cover, I will encourage you to learn how to fish for information. This skill is invaluable, especially if you choose the self-taught path, where you'll often find yourself navigating new challenges independently.

Give a man a fish and you feed him for a day. Teach him how to fish and you feed him for a lifetime.

Lao Tzu

Moreover, consider expanding your social network by connecting with individuals currently enrolled in Computer Science programs. They often have access to courses and exercises that could be incredibly beneficial to your learning journey, and many are willing to share these resources freely.

In conclusion, becoming a software programmer is a challenging yet rewarding journey that requires dedication and a strategic approach grounded in scientific principles. This article underscores the importance of understanding how our brains learn, as informed by the insights of neuroscience and psychology, particularly through Daniel Goleman's work.

Success in this field goes beyond attending short courses; it demands a comprehensive understanding of IT domains, continuous practice, focused learning, and effective stress management. Embracing challenges and seeking feedback are crucial steps in optimizing your learning experience.

For those passionate about building digital solutions, the effort invested in mastering these skills can lead to significant rewards. To deepen your understanding and enhance your skills, consider reading Daniel Goleman's books "Emotional Intelligence", "Focus", and "Social Intelligence", which offer valuable insights into the psychological and emotional aspects of learning and performance.