Fundamentals 25 min read

What Top Programmers Reveal About Learning, Skills, and Future Trends

A compilation of interviews with renowned programmers—Linus Torvalds, Dave Thomas, Guido van Rossum, and others—covers how they learned to code, essential programmer skills, the role of math and physics, upcoming hot topics, preferred tools, favorite books, and music, offering deep insight into the craft of software development.

21CTO
21CTO
21CTO
What Top Programmers Reveal About Learning, Skills, and Future Trends

Star lineup

Linus Torvalds: Linux kernel author.

Dave Thomas: Author of The Pragmatic Programmer, Programming Ruby and other influential books.

David Heinemeier Hansson: Creator of the Rails framework.

Steve Yegge: Veteran Google engineer and blogger.

Peter Norvig: Head of Google Research, noted AI author.

Guido van Rossum: Creator of Python.

James Gosling: Father of Java.

Tim Bray: Co‑author of the XML and Atom specifications.

Bjarne Stroustrup: Father of C++.

Linus Torvalds
Linus Torvalds

1. How did you learn programming? Which schools? Was it useful?

Steve Yegge: Started on an HP calculator using its RPN stack language at 17, then moved to a PC and Turbo Pascal, eventually earning a CS degree at the University of Washington, which he highly recommends.

Linus Torvalds: Mostly self‑taught by reading books and experimenting on Commodore VIC‑20 and Sinclair QL; later studied at Helsinki University, focusing on theory and fundamentals like complexity analysis.

David Heinemeier Hansson: Began by building a personal homepage, then learned ASP and PHP, later pursued a joint CS and business degree.

Peter Norvig: Studied programming in high school and university but feels most learning was self‑directed.

Dave Thomas: Attended a local college for computer classes, then Imperial College London for a software‑focused undergraduate program.

Guido van Rossum: Attended university with a mainframe and many CS courses; considers it important.

James Gosling: Mostly self‑taught; got his first programming job before university, but values his later CS education.

Bjarne Stroustrup: Studied at Aarhus and Cambridge, gaining practical knowledge useful for his work.

Tim Bray: Intended to become a math teacher; university courses in computer science were largely irrelevant to his career.

2. What skills should a programmer have?

Steve Yegge: Strong written and oral communication; reading, writing, and public speaking are essential.

Linus Torvalds: Good “taste” in code style and the ability to explain decisions clearly, especially in open‑source projects.

David Heinemeier Hansson: Strong values and the ability to ask whether one’s work is valuable.

Peter Norvig: Focus, nothing more.

Dave Thomas: Passion.

Guido van Rossum: No specific answer; humorously mentions cooking an egg.

James Gosling: Self‑motivation and love for what you do.

Bjarne Stroustrup: Clear thinking and the ability to articulate problems and solutions.

Tim Bray: Fact‑based reasoning, not following feelings.

3. How important are mathematics and physics for programmers?

Steve Yegge: Discrete mathematics (probability, combinatorics, graph theory, induction) is very important; calculus useful for occasional tasks like traffic‑load modeling.

Linus Torvalds: A solid math foundation helps; physics less directly useful unless working on simulations.

David Heinemeier Hansson: Mathematics has little use in commercial web programming; writing skill matters more.

Peter Norvig: Mathematics underpins many computer concepts such as recursion and logic.

James Gosling: Mathematics teaches logic and reasoning, essential for algorithm analysis.

Bjarne Stroustrup: Some math is useful; physics is a good way to learn practical math.

Tim Bray: Rarely uses university‑taught math.

4. What will be the next hot area in programming?

Steve Yegge: Web applications will become the dominant client platform, gradually replacing native toolkits.

Linus Torvalds: No huge leap; incremental improvements like higher‑level languages or built‑in databases matter more.

David Heinemeier Hansson: No predictions; the best way to foresee the future is to build it.

Peter Norvig: Large‑scale distributed computing.

Dave Thomas: Focus on fundamentals and delivering value rather than chasing trends.

Guido van Rossum: No crystal‑ball insight.

James Gosling: Parallel replication and complexity.

Bjarne Stroustrup: Uncertain, does not like guessing.

Tim Bray: Unknown.

5. If you had three months to learn a new technology, what would you choose?

Steve Yegge: Learning Dojo, advanced AJAX, and DHTML while building a large web app.

Linus Torvalds: FPGA development, to work closer to hardware.

David Heinemeier Hansson: Cocoa programming on Mac.

Peter Norvig: More JavaScript and Flash.

Dave Thomas: Intensive piano lessons or assistive‑technology work.

Guido van Rossum: Skiing.

James Gosling: Latest 3D rendering techniques.

Bjarne Stroustrup: Deepening expertise in a chosen field.

Tim Bray: Security, encryption, digital signatures, authentication.

6. What makes some programmers 10‑100× more efficient?

Steve Yegge: Ability to focus, akin to elite athletes.

Linus Torvalds: Some people naturally concentrate on useful work.

David Heinemeier Hansson: Turning hard problems into easy ones.

Peter Norvig: Adapting one’s mind to the problem.

Dave Thomas: Caring deeply about their work.

Guido van Rossum: Genetic differences in brain structure.

James Gosling: Thoughtful, deliberate approach.

Bjarne Stroustrup: Strong fundamentals, experience, and tool knowledge.

Tim Bray: Diversity of human thought.

7. What are your favorite tools and why?

Steve Yegge: Unix/Linux OS; Ruby for scripting; Java for its robustness; Emacs editor; SVN (Perforce if affordable); Bash shell; MySQL; Firefox as essential browser.

Linus Torvalds: Custom tools: his own OS work, Git version control, micro‑emacs, and Pine email client.

David Heinemeier Hansson: OS X, TextMate, Ruby, Subversion, MySQL.

Peter Norvig: Prefers Linux/Unix, Python, Lisp, Emacs.

Dave Thomas: Linux, later Mac; a mix of tools that require little maintenance.

Guido van Rossum: Unix/Linux, Python, vi+emacs, Firefox.

James Gosling: NetBeans IDE.

Bjarne Stroustrup: Unix, sam editor, a good C++ compiler.

Tim Bray: Unix‑like OS, dynamic languages like Python/Ruby, Java APIs, Emacs, Bash, NetBeans.

8. What is your favorite programming‑related book?

Steve Yegge: GEB (Gödel, Escher, Bach) or SICP.

Linus Torvalds: The C Programming Language (K&R) and classic computer‑architecture books.

David Heinemeier Hansson: Extreme Programming Explained and Patterns of Enterprise Application Architecture.

Peter Norvig: Structure and Interpretation of Computer Programs.

Dave Thomas: IBM/360 Principles of Operation.

Guido van Rossum: Neal Stephenson’s Quicksilver.

James Gosling: Programming Pearls by Jon Bentley.

Bjarne Stroustrup: K&R’s The C Programming Language.

Tim Bray: Programming Pearls by Jon Bentley.

9. What is your favorite non‑programming book?

Steve Yegge: Stardust (Neil Gaiman), The Mind’s I (Hofstadter/Dennett), loves Kurt Vonnegut and Jack Vance.

Linus Torvalds: The Selfish Gene (Richard Dawkins), Heinlein’s Stranger in a Strange Land.

David Heinemeier Hansson: 1984 by George Orwell.

Guido van Rossum: Quicksilver by Neal Stephenson.

James Gosling: Guns, Germs & Steel by Jared Diamond.

Bjarne Stroustrup: O’Brian’s Aubrey/Maturin series.

Tim Bray: One Day in the Life of Ivan Denisovich.

10. What are your favorite bands or musicians?

Steve Yegge: Classical (Rachmaninoff, Chopin, Bach), anime/game music (Last Exile, Haibane Renmei).

Linus Torvalds: Classic rock from Pink Floyd, The Beatles, Queen, The Who.

David Heinemeier Hansson: Female guitarists like Beth Orton, Aimee Mann, Jewel, Lauryn Hill.

Guido van Rossum: Philip Glass.

James Gosling: Folk singers such as Christine Lavin, Woody Guthrie, Pete Seeger.

Bjarne Stroustrup: The Dixie Chicks and Beethoven.

Tim Bray: See his blog for details.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

programmingsoftware developmentcareer adviceinterviewprogrammer skills
21CTO
Written by

21CTO

21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.