You're doing it wrong: How to become a great programmer (says Cambridge professor)

Frank Stajano Explains
16 Sept 202217:22

Summary

TLDRIn this insightful video, a computer science professor from the University of Cambridge discusses the journey to becoming a great programmer. He emphasizes the importance of genuine enjoyment in programming, the need for persistence through challenging times, and the value of understanding multiple programming languages and paradigms. The professor also highlights the significance of being able to work with and improve existing code, learn from other programmers, and the necessity of continuous learning to stay relevant in the ever-evolving field of programming.

Takeaways

  • 😀 Programming is a highly in-demand skill that can lead to job security and personal fulfillment.
  • 🔥 Passion for programming is essential for becoming a great programmer; it should be an enjoyable and creative pursuit.
  • 🛠 The journey to becoming a great programmer is challenging and requires natural talent, motivation, and the ability to overcome difficulties.
  • 🔍 Problem-solving is a core aspect of programming; learning to program by tackling real problems can enhance understanding and skill.
  • 🏋️‍♂️ Gaining proficiency in a programming language often involves pushing oneself to the limit and learning from the challenges encountered.
  • 🚫 Recognizing the limitations of a programming language is crucial; understanding when a language is not well-suited for a task can guide the choice of the right tool for the job.
  • 🌐 Learning multiple programming languages and paradigms provides insights into the strengths and weaknesses of each and helps in selecting the most appropriate one for a given problem.
  • 📚 Becoming a 'language lawyer'—having deep knowledge of a language's specifications—is a significant but potentially never-ending commitment due to the evolving nature of programming languages.
  • 🤝 Great programmers are not only able to write code but also to understand, maintain, and improve the code written by others, which is a more complex skill.
  • 💼 Working in an environment with other great programmers can accelerate one's growth, as witnessing and interacting with greatness can be highly influential.
  • 🌟 Becoming a great programmer involves continuous learning, adapting to new languages, and maintaining expertise in at least one language to express ideas effectively.

Q & A

  • Why is programming considered a highly demanded skill?

    -Programming is a highly demanded skill because if you are a truly great programmer, you will likely never be unemployed unless you choose to be, indicating a consistent demand for skilled programmers in the job market.

  • Why do some people program even without a full-time job as a software developer?

    -Some people program because it is a fulfilling activity itself, they find it creative and enjoyable, and it provides an intellectual stimulation that they enjoy even in their spare time.

  • What is the importance of enjoying programming for those who aspire to be great programmers?

    -Enjoying programming is crucial because it must come from within as an unstoppable urge that gives pleasure and satisfaction, which is essential for maintaining motivation through the difficult and frustrating aspects of programming.

  • What does the speaker suggest as the first step in becoming a great programmer?

    -The first step in becoming a great programmer is to genuinely enjoy programming as its own reward, indicating that passion and intrinsic motivation are foundational for pursuing excellence in programming.

  • What is the role of problem-solving in learning programming according to the speaker?

    -Problem-solving is an essential part of learning programming because it provides a practical context to apply programming knowledge, pushing oneself to the limit and learning more about the language when faced with challenges.

  • Why is it beneficial to learn multiple programming languages and paradigms?

    -Learning multiple programming languages and paradigms is beneficial because it allows a programmer to understand the strengths and limitations of different languages, enabling them to choose the most appropriate tool for a given problem.

  • What does the speaker mean by 'the space among parts of the programs is so huge'?

    -The speaker refers to the vastness of possible programs that can be written, suggesting that each programming language channels a programmer into exploring certain regions of this 'program space,' making it easier to write certain types of programs.

  • What is the significance of becoming a 'language lawyer' in one's programming journey?

    -Becoming a 'language lawyer' means being extremely fluent and proficient in at least one language, allowing a programmer to translate ideas directly into working code without needing to reference documentation, which is a key aspect of being a great programmer.

  • Why is it important for aspiring programmers to work with other people's code?

    -Working with other people's code is important because it helps develop the ability to understand, fix, and improve existing codebases, which is a critical skill in real-world programming and contributes to becoming a great programmer.

  • What advice does the speaker give for gaining respect as a professional developer?

    -The speaker advises becoming an expert in a poorly documented and untidily written library that is crucial to the company's core business, as this will earn respect from colleagues and superiors due to the demonstrated ability to work with complex and challenging code.

  • How does the speaker describe the interaction with great programmers in a professional setting?

    -The speaker describes the interaction with great programmers as initially challenging due to their high standards and expectations, but ultimately rewarding as it can lead to personal growth and being recognized as a peer among great programmers.

Outlines

plate

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.

قم بالترقية الآن

Mindmap

plate

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.

قم بالترقية الآن

Keywords

plate

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.

قم بالترقية الآن

Highlights

plate

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.

قم بالترقية الآن

Transcripts

plate

هذا القسم متوفر فقط للمشتركين. يرجى الترقية للوصول إلى هذه الميزة.

قم بالترقية الآن
Rate This

5.0 / 5 (0 votes)

الوسوم ذات الصلة
ProgrammingSkill DevelopmentCareer AdviceCode MasteryProblem SolvingLanguage LawyerProfessional GrowthSoftware DevelopmentLearning PathExpertise Building
هل تحتاج إلى تلخيص باللغة الإنجليزية؟