Published Feb 27, 2016

How to be an Intermediate Programmer

    Explore the essential skills and strategic decisions that define intermediate programming, from managing software risks and balancing quality versus development time, to fostering effective team dynamics and continuous learning for enhanced productivity and innovation.
    Episode Highlights
    Coding Blocks logo

    Popular Clips

    Episode Highlights

    • Motivation

      Maintaining motivation in programming is crucial for productivity and morale. Alan Underwood highlights the importance of engaging with projects that are beautiful, useful, or nifty to avoid low morale. He emphasizes the need for developers to find new opportunities to apply techniques and languages, which can reignite interest in their work 1. Understanding the impact of one's work on customers can also be a powerful motivator. Underwood shares his experience of equating changes in e-commerce sites to revenue increases, which he found highly motivating 2.

      If you don't feel passionate about what you're working on as a developer, it can really drag you down.

      --- Alan Underwood

      Recognizing these motivational factors is essential for both developers and managers to foster a productive work environment.

         

      Code Balance

      Balancing brevity and abstraction in code is a delicate task that impacts code efficiency and maintainability. Alan Underwood discusses the pitfalls of excessive abstraction, which can lead to confusion and hinder code clarity 3. He refers to speculative programming, where unnecessary abstraction is added without clear use cases, as a common issue. Underwood advises against creating layers of abstraction that do not serve a practical purpose, especially in internal applications 4.

      Too much abstraction causes confusion.

      --- Alan Underwood

      Finding the right balance ensures that code remains both functional and understandable, avoiding the trap of over-engineering.

         

      Skill Learning

      Continuous learning is vital for programmers to stay relevant and innovative. Alan Underwood stresses the importance of actively engaging with new skills through practice rather than passive learning methods like videos or books 5. He suggests that companies should encourage learning to boost morale and bring fresh knowledge into the team. Additionally, Underwood highlights the significance of mastering heavy tools, such as databases and full-text search engines, which are essential for handling complex projects 6.

      The ability to learn new skills quickly is probably the best skill you can have.

      --- Joe Zack

      By embracing new technologies and methodologies, programmers can enhance their capabilities and contribute more effectively to their teams.

    Related Episodes