ŷ

Jump to ratings and reviews
Rate this book

The Self-Taught Programmer: The Definitive Guide to Programming Professionally

Rate this book
I am a self-taught programmer. After a year of self-study, I learned to program well enough to land a job as a software engineer II at eBay. Once I got there, I realized I was severely under-prepared. I was overwhelmed by the amount of things I needed to know but hadn't learned yet. My journey learning to program, and my experience at my first job as a software engineer were the inspiration for this book.

This book is not just about learning to program; although you will learn to code. If you want to program professionally, it is not enough to learn to code; that is why, in addition to helping you learn to program, I also cover the rest of the things you need to know to program professionally that classes and books don't teach you. "The Self-taught Programmer" is a roadmap, a guide to take you from writing your first Python program, to passing your first technical interview. I divided the book into five sections:

1. Start to program in Python 3 and build your first program.

2. Learn Object-oriented programming and create a powerful Python program to get you hooked.

3. Learn to use tools like Git, Bash, and regular expressions. Then use your new coding skills to build a web scraper.

4. Study Computer Science fundamentals like data structures and algorithms.

5. Finish with best coding practices, tips for working with a team, and advice on landing a programming job.

You CAN learn to program professionally. The path is there. Will you take it?

299 pages, Kindle Edition

First published January 24, 2017

4,137 people are currently reading
2,588 people want to read

About the author

Cory Althoff

2books59followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
332 (35%)
4 stars
330 (34%)
3 stars
210 (22%)
2 stars
48 (5%)
1 star
23 (2%)
Displaying 1 - 30 of 92 reviews
Profile Image for Maru Kun.
221 reviews550 followers
March 6, 2017
The most frustrating thing I have found about tinkering with programming is that unless you spend time hunting out different web tutorials, questions on stack overflow or a whole range of books it is almost impossible to find out the scope of what you need to know to have a decent play around with a programming language in the real world.

I wanted to learn some Python, but for practical purposes I need to also know about the Linux command line - so have to get a book on that. I want to try some web-scraping, but that means I have to know about regular expressions, so try and find a book or website on that. I get it that some languages are object oriented, but so what?

This book is a very basic introduction to programming with Python together with a few very short chapters on all this "other stuff" that you need to know to actually write a program. This includes an explanation of object oriented programming and a brief comparison with functional and procedural programming, explanations of the bash command line, regular expressions, package managers such as github and the importance of data structures and algorithms.

The information is only suitable for a real beginner, perhaps someone who might be starting off on the first few lessons in an online course at Codeacademy f0r example, and the book is not long. But for the price I paid for it - a discounted couple of USD - it was well worthwhile for me in that it helped me understand that I wasn't a complete idiot and that other people are equally confused about what they actually need to know to do some programming.

Pretty useful for someone just starting to take an interest in programming, and given no other book I could see takes this approach it deserves 4 stars.

Profile Image for Jarmo Annunen.
41 reviews
June 21, 2017
Ooops

Didn't really get anything out of this book. I thought this would be like a story about the path to being a programmer.

This was more like a simple Python tutorial with a little bit of scratches to other fields (version control, data structures, databases, bash etc.)

Maybe a good read for a total newbie.
Profile Image for Nikolai Nikiforov.
147 reviews18 followers
May 20, 2017
This book gives a few useful hints, but mostly it's so superficial that the claim that this is all you need to start programming professionally is borderline fraudulent.
Profile Image for Sasha.
120 reviews
August 16, 2020
TL;DR How-to guide to learn the basics of python, data structures & algorithms, climbing the freelance ladder and landing your first job

This book is a great introduction to programming - it has a companion Udemy course to go with it, which I did along with the book and highly recommend. Althoff is encouraging and careful only to tell you what you need to know - rather than overwhelming you with jargon. I like that he includes practical tips on making your freelance profile, getting freelance jobs. Where the book lacks depth on individual topics, it makes up for by setting up context and pointing you to further resources on those topics.

It is a beginner book, so if you want to program professionally, you'd need to do some more in-depth intermediate courses on the topics he introduces you to. Althoff gives you a lot of recommendations for further courses in codinglist.com.

The Udemy course + book combo would be 4.5 stars. The book by itself would be 3 stars.
47 reviews
January 25, 2018
I loved the concept behind this book: that it would "open the kimono" of programming. In other words, that it would help aspiring programmers understand more about how to make the leap from learning the basics (e.g. Learn Python the Hard Way, CodeAcademy, etc.) to becoming full fledged developers. The author promised to explain more about how to take that step from into intermediate programming, as well as to reveal more about how programmers think about solving problems. Unfortunately I found this book to be "more of the same." It's far too similar to every other 'Intro to Python' course I've taken or read, and I didn't really get any new learnings about either making the leap to the next level, or even understanding more about a professional coder's day-to-day. Perhaps, as someone who has already taken those first steps, I wasn't the true audience the author was searching for. Alternatively, I was precisely who he was marketing to, and he simply didn't deliver. There is absolutely value there for people first starting on their journey - if you've never written a "Hello, World!" before this is a fine place to start, no better and no worse than many others. But if you're looking for some of the intangibles the marketing blurbs promised about this book I'd advise you to keep looking elsewhere.
Profile Image for Anjum Haz.
269 reviews66 followers
September 22, 2021
I picked up this book to enlighten myself with the knowledge of other programmers. The book discusses from basic programming to professional practices covered in six parts. I found them super simple and what I liked most is- the book isn't lengthy. It starts on a topic, gives the very basics and moves on. Pretty useful for those who want to switch careers to programming. For people majoring in computer science, the first four parts are like revision. Basic programming, object oriented programming, data structure, a bit of network layers, another bit of operating system, version control with git and few others to complete a full byte.

I liked the last two parts- Programming for Production and Land a Job. Since I have just landed a job, the best practices guidelines really helped me. I am gonna leave a few quotes from this book that other programmers will find relating too.
“If debugging is the process of removing bugs, then programming must be the process of putting them in.�
-Edsger Dijkstra

“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.�
-Martin Golding

“You can’t have great software without a great team, and most software teams behave like dysfunctional families.�
- Jim McCarthy

Profile Image for Mesoscope.
606 reviews321 followers
March 22, 2021
I was attracted to this book for its promise of advice on learning what you need to know to work in software beyond computer science and programming, but this book is really only useful for complete beginners. It mostly comprises a basic introduction to Python written for people with absolutely no experience with programming. The advice for what you need to know to work in the field is appropriate for people who have never used source control or a command line interpreter before, and who know nothing about professional software development.

I believe in essence what this book aims to provide is an all-in-one book that reviews topics covered in greater depth in The Pragmatic Programmer, Cracking the Coding Interview, and something like Learning to Program in Python. But this book is scarcely 300 pages long, and it can only treat each topic in the most rudimentary way. Anyone who is at all serious would do better to skip it and just go on to those other three books.
Profile Image for Marina.
2 reviews1 follower
July 1, 2018
Описание книги очень сильно лукавит. В начале автор рассказывает о том, насколько сильно фрустрирует большинство книг о программировании для новичков - давая много обзорной информации и не давая понимания того, что с ней делать. Потом говорит (справедливо), что недостаточно просто уметь писать код, чтобы стать разработчиком, и как круто он сейчас расскажет про то, о чем не пишут в учебниках.

После этого начинается ... краткий и бесцельный ввод в Python, начиная с азов и до ООП (ему уделено пара страничек). Ооок, можно списать на то, что книга для полных новичков. Дальше читателя ждёт короткий и крайне поверхностный забег в bash, git, computer science и алгоритмы (эээ).

Очевидно, человек, который только что узнал, что такое переменная и строка, 100% готов составлять алгоритмы.

С середины книгу я просто листала, но прочла финальные советы по прохождению интервью. В этой части тоже никаких откровений.

Вся информация в книге легко гуглится, не советую тратить на неё деньги.
Profile Image for Ahmed Chicktay.
39 reviews4 followers
September 18, 2017
If you are an absolute beginner, it may be a great starting place, the first step into the world of software development....
Profile Image for Parker.
146 reviews4 followers
December 9, 2020
Great for laying a foundation in Python and familiarizing with OOP stuff, data structures, basic algorithms, and other core CS concepts. Also great for when your intro to CS classes are taught in Java and you wanna modernize dat skillset.
Profile Image for Lance.
21 reviews6 followers
December 1, 2017
it's a start! covers the basics, will need a follow up book.
3 reviews
February 11, 2018
Basic knowledge

Good basic knowledge, did the job for me, again its very basic but good, youll practice with python and other tools!!
Profile Image for Surattikorn.
105 reviews6 followers
February 26, 2021
หนังสือเหมาะสำหรับผู้ที่สนใจอยากเป็นโปรแกรมเมอร์ โดยที่ไม่มีพื้นฐานมาก่อน
แต่สำหรับโปรแกรมเมอร์ที่มีประสบการณ์แล้วก็ถือว่าอ่านเพลิน � ได�
อาจจะได้แหล่งข้อมูลใหม� � มาให้ได้ศึกษาเพิ่มเติมบ้า�
Profile Image for Srinivasan Nanduri.
462 reviews10 followers
January 12, 2025
For a reasonable start to your programming journey.

The book is divided into five sections, each addressing a critical aspect of programming and professional development:

### **1. Learn to Program**
- **Focus on Python:** Python as the language to introduce foundational programming concepts.
- Topics include:
- Variables, loops, conditionals, functions, and object-oriented programming.
- Debugging techniques and common programming mistakes.
- Small projects and solving exercises.
### **2. Learn to Use Tools**
- **Version Control:** Introduction to Git and GitHub for managing code and collaborating with others.
- **Command Line Basics:** Covers fundamental shell commands for navigating and managing files.
- **Writing Tests:** Highlights the importance of testing and introduces unit testing with Python.
- **Understanding IDEs and Text Editors:** Guides readers on choosing and using development environments effectively.
### **3. Learn to Work with Others**
- Emphasizes collaboration and teamwork, which are essential in professional settings.
- Topics include:
- Code reviews: How to review and accept feedback constructively.
- Agile development: Basic principles of Agile and working in sprints.
- Writing clean and maintainable code: Focus on readability and modularity.
### **4. Learn Computer Science**
- Introduces fundamental computer science concepts:
- Data structures: Lists, dictionaries, stacks, and queues.
- Algorithms: Sorting, searching, and recursion.
- Big-O Notation: Basic understanding of algorithm efficiency.
- Provides an accessible overview without overwhelming beginners.
### **5. Land a Job**
- Guides readers on how to transition into the professional world of programming.
- Topics include:
- Building a portfolio: Importance of showcasing projects on GitHub.
- Preparing for interviews: Common technical and behavioral questions.
- Networking and job hunting: Leveraging LinkedIn and professional connections.
- Importance of continuous learning to stay relevant in the field.
### **Key Takeaways**

1. **Programming is a learnable skill.**
- Anyone can learn to program with dedication and consistent practice, even without formal education.

2. **Projects are essential for growth.**
- Build real-world projects to solidify your skills and demonstrate your abilities to potential employers.

3. **Master the tools of the trade.**
- Learn Git, testing frameworks, and command-line basics to work efficiently in professional environments.

4. **Understand core computer science concepts.**
- Knowing algorithms, data structures, and problem-solving techniques is vital for technical interviews and career growth.

5. **Focus on communication and collaboration.**
- Writing clean code and working effectively in teams are as important as technical skills.

6. **Stay persistent in the job search.**
- A strong portfolio, networking, and interview preparation can help you break into the industry.


Profile Image for Ben.
2,721 reviews218 followers
June 13, 2023
Another Stellar Book By Cory

This book is an exhilarating and informative read that takes readers on a captivating journey into the world of programming. Bursting with enthusiasm and a deep understanding of the subject matter, this book perfectly captures the essence of what it means to be a self-taught programmer.

Althoff's writing style is engaging and relatable, drawing readers into the exhilarating world of coding. I truly enjoyed his other book too.

As someone who is continually learning and exploring new ideas, I resonated with the author's emphasis on the dynamic nature of programming.
The book serves as a testament to the fact that programming is not a stagnant career but a constantly evolving field that requires adaptability and a thirst for knowledge.

I thoroughly enjoyed the immersive experience of reading The Self-taught Programmer. Althoff's passion for the subject matter shines through, inspiring readers to embrace the ever-changing landscape of programming with excitement and curiosity. The book serves as a beacon of guidance, providing valuable insights and practical advice for those embarking on or already engaged in a programming career.

Althoff's ability to encapsulate the essence of self-taught programming and ignite a sense of enthusiasm in readers is truly commendable. This book is a must-read for aspiring programmers and seasoned professionals alike, offering a roadmap to success and a glimpse into the future of this dynamic field.

Prepare to be captivated and empowered as you dive into the pages of The Self-taught Programmer. This book is an invitation to unlock your full programming potential, embrace the ever-changing nature of the profession, and embark on a thrilling journey of continuous growth and innovation.

4.6/5
Profile Image for éٳٱ.
422 reviews
August 1, 2022
I think the book is excellent and detailed but it's not enough to answer my questions in programming. I love how Cory Althoff wrote the book for beginners in programming since I also look like a beginner after finishing a degree in a similar field. Okay, it's still difficult after finishing the book, especially in the last part where he is combining everything. I am okay with the theory and definition of the basic fundamental programming terms but in application -I am still stupid. I learned a lot from this book. I love Python because I am working hard to go to the AI field someday. If I am going to enter this field, I might as well dream high. The recommended books are superb. The advice on how to land a job is so gem. Hopefully, I can use them after a year of training on my own with Google and books. Today marks the resetting of Day 1 Coding Kaizen.

I am still baffled by how long it took for me to finish this book since I started it in January and just finished it today (August 1, 2022). IT IS REALLY TRUE THAT IF YOU WANT SOMETHING TO FINISH TODAY, YOU CAN DO IT. I sat here at 1:57 PM and now writing this review after finishing the book at 3:42 PM. Guess that's more than an hour allocated for coding every day. I am still puzzled about how difficult to understand programming is but this will be a challenge for me. If I am really intelligent and self-proclaim geek, then I can surpass the challenges of coding. Okay, adios!
This entire review has been hidden because of spoilers.
Profile Image for Dominic Bor.
16 reviews
December 13, 2024
This book occupies an interesting niche between pure programming tutorials and career guidance. Althoff shares his personal journey from complete beginner to professional software developer, giving the book an authentic, relatable feel that many technical books lack.

The book's greatest strength is its comprehensive approach � it doesn't just teach Python programming, but covers the entire ecosystem a self-taught programmer needs to understand: version control, databases, testing, and even job hunting. The progression from basic syntax to object-oriented programming feels natural and well-paced.

However, the breadth of coverage comes at the cost of depth. More experienced programmers will find the technical content rather basic, and some topics feel oversimplified. The book sometimes struggles to find its target audience � too basic for those with programming experience, yet moving too quickly through fundamentals for complete beginners.

The career advice sections are valuable but could benefit from more real-world examples and scenarios. While the author's personal experience is inspiring, it represents just one path into programming.

Best suited for career-changers and complete beginners who want a roadmap to becoming a professional programmer, rather than those seeking deep technical knowledge
26 reviews
July 7, 2021
The author's recommendation on how to become a programmer and on how to find work as a programmer are sound and good advice. I am a hobbist, but I would like very much to become a python programmer. Everything which I have read supports the author's recommendations.
The book's one problem is that the author attempts to cover too much material. Is this book about how to become a professional programmer, or is the book about how to program. If the book is about how to program, then the author should have concentrated on programming in python. If the book is about becoming a professional progammer, then the author should have concentrated on the steps to become a professinal programmer. Attempting to do both means that important points in several programming types are omitted. (for example, GIT, python classes)
Profile Image for Ally Wu.
5 reviews
May 8, 2019
The book goes through the basics of programming, but not in any substantial detail. Probably best to read if you're still relatively new and want quick insights into the main subject areas (basic algorithms, data structures, version control, SQL, etc) or if you're starting out and are completely new to programming. There's definitely a lot of coverage, but again, you'll probably need to consult other sources as the book will tend to simplify the concepts and ignore complexity.

For some reason I thought this book would be geared towards professionals in the workplace, but it seems like the focus is for individuals wanting to start programming professionally who don't have a background in computer science. Oh well.
4 reviews
June 1, 2021
Reviews for a friend Interested in programming career

I wish I read this book when I started my career. I too felt the pains the author felt when he started his career. I have a friend wanting to start a career in programming. I wanted to read it before I recommend it to him. I think this book perfectly compartemalizes what you should look at or things to learn right after you learn to code. If you're a engineer beginning your career , this book will help. If you're a year or 2 in for your career, this book contains info you've already picked up. I won't discredit it because of that. In my book it's a 5 star-rating because the author accomplished the goal he set, with the intended audience he had in mind.
Profile Image for Adam.
193 reviews4 followers
May 29, 2022
There were very helpful portions of this book to point one in a good direction, such as the importance of learning Bash and it gave a small outline of Data Structures and Algorithms. What I was really looking for and hoping to find was the story of someone who had to learn to program and how they figured things out, and there was definitely some of that, but not in the kind of detail I wanted. I wanted to know how a person overcame the difficulties of learning to code, learning how it works, how to string it together, how to actually make an executable program. I know it's very tough to put this all into a book, but I didn't want a book to teach me to program, but to narrate how another overcame learning hurdles to accomplish their goals.
Profile Image for Իé.
271 reviews80 followers
January 19, 2025
The Self-Taught Programmer by Cory Althoff is an excellent resource for aspiring developers who want to enter the field without a formal computer science degree. The book offers a well-structured, beginner-friendly approach, covering Python, object-oriented programming, algorithms, and even soft skills like job preparation and networking.
Althoff’s writing is clear and engaging, making complex topics accessible. What sets this book apart is its practical guidance on what it truly takes to become a professional programmer. The hands-on exercises and real-world insights help bridge the gap between learning to code and landing a job. Whether you are new to programming or looking to solidify your skills, The Self-Taught Programmer is a good start for self-driven learners.
Profile Image for Stephen Simpson.
668 reviews14 followers
March 4, 2019
The book fell well short of its potential.

As a how-to-program book, it's woefully inadequate and basically a waste of time. I suppose there's some value in it as a "if you can't do this ... stop and find something else to do", but you can't really do anything useful on the basis of what's presented programming-wise.

And as far as how to become a self-taught programmer and/or launch a career? It's even worse. A few vague platitudes, and that's about it. Nothing about what to focus on, nothing about areas of programming that are more/less valuable (don't both learning "this" language, etc).

Great idea. Lousy execution.
Profile Image for William Yip.
379 reviews5 followers
June 29, 2022
The title was slightly misleading as the first half was more about Python and its specific libraries and syntax than programming in general. The chapters on data structures and algorithms were disappointingly short and very simple. Some sentences didn't make sense or had incorrect wording. That said, this book is easy to read and would be helpful for beginners. I liked how the author discussed Regex in an easily understandable way that slowly built in complexity, included small programs to demonstrate the concepts, and talked about useful skills such as Bash and version control. His career advice was good too such as finding a mentor and being a cooperative teammate.
Profile Image for Andromeda Robins.
48 reviews
August 6, 2022
Even for the target audience, this book would read like drinking from a fire hose. You get a few paragraphs about dozens of different computer science topics without any depth of them. To be frank, people looking to self-teach themselves would likely learn more by just approaching google and the folks who would go to a book on programming would probably already know everything in here.

I anticipated this being a book on how to build your craft as a professional programmer after reading the title "the definitive guide to programming professionally" and was instead treated to: a) a hyper fast introduction to python and b) a description of some vocabulary in the realm of OOP
Profile Image for William Schram.
2,248 reviews95 followers
April 6, 2024
Cory Althoff is a self-taught programmer. He wrote The Self-Taught Programmer to inspire and inform programming neophytes. In the book, he assumes you intend to program professionally.

The book builds off itself. It focuses on the Python programming language but provides tips and tools to program in any language you choose. It does the typical run of "Hello World" programs and indices. It moves on to using a shell, and the author uses Bash.

At the end of each chapter is a set of optional challenges.

Although I am not the intended audience, I enjoyed the book. Thanks for reading my review, and see you next time.
Profile Image for Chantal D.
7 reviews1 follower
January 26, 2021
if you are familiar with a coding language already this is a great fast way to learn/ brush up on your Python. I read this to see if I could recommend it to beginners wanting to code but there just aren’t enough examples for a good beginners book, but this is mentioned in the intro to the book. Some fun exercises and I like that the answers are in a GitHub repository not the back of the book. I would say if you are looking to interview for your first programming job and want to use Python definitely pick this up!
Profile Image for تقى.
32 reviews8 followers
February 11, 2021
تسجيل المرة الأولى لقراءة كتاب تقني و انكليزي كامل 😬

هذا الكتاب مفيد لكل من يحاول تعلم python بشكل خاص أو تعلم مفاهيم البرمجة كاملة بشكل عام
تسلسل الكتاب بسيط و لغته ليست صعبة لمن لديه معلومات بسيطة في عالم ال it بالاضافة الى احتواءه على امثلة عملية يمكن تجربتها و تنفيذها
الجزء الثاني الخاص بما يهم كل مبرمج خارج البرمجة يعطي خطوط اساسية عن عدة مواضيع و، طريقته جيدة فيها أيضاً
لقد اكتشفت بسماع بودكاست او مشاهدة فيديوهات او مقالات لمدة جيدة جداً، لكن قراءة كتاب كامل ليست سيئة أيضاً و لا بد تضيف شيئاً
Profile Image for Matthew Horvat.
124 reviews3 followers
January 11, 2022
This book would be perfect for someone aspiring to be a self-taught developer versus a self-taught developer looking to use this for improvement. The first half of the book gives an introduction to Python, which is what a self-taught would ideally need.

Once you get past the introduction to Python, you delve into software development principles and computer science principles. The book ends with a nice how to get your first job and how to exist once you do.

TLDR: If you're new or aspiring to self-taught, pick this up and go for it.
Displaying 1 - 30 of 92 reviews

Can't find what you're looking for?

Get help and learn more about the design.