Reddit Reddit reviews Think Like a Programmer: An Introduction to Creative Problem Solving

We found 42 Reddit comments about Think Like a Programmer: An Introduction to Creative Problem Solving. Here are the top ones, ranked by their Reddit score.

Computers & Technology
Books
Computer Programming
Programming Algorithms
Think Like a Programmer: An Introduction to Creative Problem Solving
No Starch Press
Check price on Amazon

42 Reddit comments about Think Like a Programmer: An Introduction to Creative Problem Solving:

u/mdaffin · 298 pointsr/webdev

Start to focus on your problem solving skills and work on improving them. There are quite a lot of good resources out there on things you can do to improve this skill, mostly the revolve around breaking up the problem into smaller parts and constant practice. You might find some of these helpful and there are many other resources out there:

u/samort7 · 257 pointsr/learnprogramming

Here's my list of the classics:

General Computing

u/reddilada · 71 pointsr/learnprogramming

The book Think Like a Programmer is a good match.

u/tanenbaum · 40 pointsr/learnprogramming

I mean, there's books out there like this.

In my own experience, it's a matter of coding enough. You have to try to create something and do it naively. Having done something yourself gives you a reference for when you study programming in books or videoes or when talking to others that you can compare new information to, so you can realize how you could have done things better in your own project. If you don't have any reference experience, you wont learn from the information in the same way. It's part of becoming a programmer that you'll write some crap code.

Try to code some simple desktop application, like a text editor, or some other simple program. Make a list of features it should have - for a text editor, you should be able to input text, modify the input text, save the text and load a text file.

u/Viginti · 14 pointsr/learnprogramming

Stupid question on my end perhaps but have you ever read How to Think Like A Programmer?

Think Like a Programmer: An Introduction to Creative Problem Solving https://www.amazon.com/dp/1593274246/ref=cm_sw_r_cp_apa_sjOCAbTSAJPKT

u/bridgesro · 13 pointsr/learnprogramming

The best non-language-specific programming book I've read by far is Think Like A Programmer. It uses C for examples, but I wrote them using Python as I went through it. It teaches you problem-solving, which is all programming really is.

For beginners picking a new language, I recommend Automate The Boring Stuff for Python. Python is a great language for beginners, and this book will teach you Python and how to use it for practical tasks. The author has also made the book available for free online - though I picked up a physical copy to help support the guy. It's worth it :)

u/ZenBound · 11 pointsr/computerscience

I have been doing these challenges

And also using this book to get better at coding, in general: Here you go

Both links are C++ related and work on challenges which build on each other.

u/16BitMode7 · 11 pointsr/learnprogramming

Check out the book Think Like A Programmer by V. Anton Spraul. Although he uses C++ for his examples, his principles on problem solving can be related through any language. As mentioned, Code Wars is a great place to go for practicing what you covered in the book.

If you want to get an idea of what is covered in the "Think Like a Programmer" book, the author has a Youtube Channel and Playlist with tutorials on some of the practices in his book. This book along with Code Wars helped get over that hump from just understanding to practical application.

Edit for Errors in linkage.

u/a_goestothe_ustin · 8 pointsr/EngineeringStudents

u/tyggerjai is speaking the truth. Learning programming has very close similarities to learning math. You first learn the method or theory and then, through practice, learn the implementation.

There is a great book, Think Like a Programmer, in which the author tries teaching this exact skill of breaking down programming problems, which you may not know how to do, into small steps, each of which you do know how to do. Then by adding all of those steps together you get the answer you were looking for.

That, in a nutshell, is what makes for a good programmer.

u/shadeofmyheart · 6 pointsr/AskComputerScience

You might want to check out this book:
Think Like a Programmer: An Introduction to Creative Problem Solving https://www.amazon.com/dp/1593274246/ref=cm_sw_r_cp_api_i_QOnEDbQBH1PW0

For me, I find the trick is trying to break down the problem into the smallest steps. For math related stuff I often do a few iterations on paper so I can see where the patterns lie and answer questions like “what repeats here” which would tell me I need a loop or recursive function. Or “what decisions does the computer need to make? Using what information?” Tells me what conditionals I’ll need etc.

For Fibonacci, for example, you know adding is involved.... so you are going to need math operators. you know it repeats ... so you’ll need a loop or function. Etc.

I hope that helps!

u/akame_21 · 6 pointsr/OSUOnlineCS

I would follow up on the courses delia_ann posted. I preferred the MIT course over the Harvard course for several reasons but YMMV.

I would recommend brushing up on math if you think you might have trouble, but considering you have an engineering background this may not be necessary. Before I started the program I worked through khan academy for several months and it helped me a lot in 225: Discrete Math.

Since this is the close of my first semester I decided I'm going to spend time off between semesters to take courses on edx and/or start reading the textbook(s) for my next class. Having rudimentary knowledge of the subject matter before the class starts makes things so much easier.

Someone on this sub recommended Think Like a Programmer to me, and that's what I'm using to reinforce concepts and get ready for 162 next semester (especially because it uses C++). There's a free pdf on that you can find using google. This may be a good read for you when you get a little experience using C++.

u/daysofdre · 5 pointsr/learnprogramming

Hey, I recommend the book Think Like a Programmer: An Introduction to Creative Problem Solving. I can't take credit for the suggestion, it was suggested by another redditor who made a great post about how to start coding when you're stuck and the problems he faced. He recommended this book, and I've been reading some of it, and it's spot-on. Easy to understand, easy to read, and will help you come up with steps on how to think systematically.

u/JuiceBoxUP · 4 pointsr/HowToHack

I'm in the same boat as you but decided to go through code academy all the same. They make you start on basic HTML/CSS which I would argue anyone interested in coding should know. My only problem with the academy is that while they are the premiere place to learn syntax they don't always present the problem solving /analytical mindset you need. I recommend combing academy w/ this book and watching videos on the YT channel "crash course" about computer science and algorithms (find more in depth vids on anything that interests you). I'm still a beginner and most the people on this sub know a great deal more than I, but this is my current learning structure so I though I would share.

u/qna1 · 3 pointsr/learnprogramming

I know java, but currently speed learning c++ here, so that I can complete this Think Like a Programmer. Might seem extreme to try to learn a complete language just to improve my problem solving abilities, but the more I practice programming, the more I run into the very common problem of not being able to break problems down enough to solve them/ think algorithmically. This book is highly recommended for this issue, so I figured I would give it a shot, would love to learn and work together in a group.

u/qsmrf56 · 3 pointsr/cscareerquestions

I was looking for something inclined towards Problem Solving.

Something that helps in the approach a person should take when they are tackling a problem. What could be the possible strategies etc.

I found this one to be quite interesting: https://www.amazon.com/Think-Like-Programmer-Introduction-Creative/dp/1593274246

u/mr-peabody · 2 pointsr/Frontend

>Am I alone in feeling this way?

Nope. I'm a 33 year old frontend dev with 3 years of experience. I'm working for a company, making good money for the area, but we've only got two, simple sites. One I built last year and we're getting ready to launch a completely overhauled version of our flagship site. Once the site goes live next month, all that's really left for me is to maintain it and possibly a few internal web projects. The only other dev in the company is my boss, who is the CTO and too busy to really mentor me.

So I've been job hunting because I've become complacent and stagnant in my skills and I want to be more marketable if they ever decide they don't need a full-time web developer. The problem is, I was a junior developer with less than a year experience before starting here. Since then, I've just been working on websites in Bootstrap with very limited interactivity in OctoberCMS... something that's probably not going to impress any future employers.

Since my portfolio is empty, I've just made a pact with myself to try to finish 2-3 small, side-projects a month until the right job opening comes along. Like, you, my logic is weak, so I've been reading "Think Like a Programmer", which I think is helping.

u/donbigone · 2 pointsr/learnprogramming

This book Helped me alot !

u/furyfairy · 2 pointsr/electronics

>> a AVR is often not quite the right device for the task.

Fuck it. Use the teensy 3. powerful, efficient , versatile arduino.

>> skill or willpower to write the needet software.

Tools like the arduino help. Also , this book teaches how to think like a programmer:

https://www.amazon.com/Think-Like-Programmer-Introduction-Creative/dp/1593274246/ref=sr_1_43?ie=UTF8&qid=1478106303&sr=8-43&keywords=how+to+design+programs

As for motivation, once you'll have the skill , it might come , because you'll able to get small wins pretty rapidly.

>> But that makes the component selection fairly hard

Please explain ?

u/RibMusic · 2 pointsr/C_Programming

As other's have said, K&R is a great introduction to C, but not a great introduction to programming/computer science. I think more people should try to C as their first language as it gives the student a better idea of what the computer is actually doing than high-level languages. I wish I had a modern book I could refer you to for learning C as a first language, but I am out of the loop, however, I have heard great things about Harvard's free online course: Introduction to Computer Science which uses C (and some other languages).

As far as learning how to be a better programmer, I think one of the key things is to 1) strive to understand what is happening under the hood. 2) Break large problems into smaller ones 3) Logically order the operations needed to complete the tasks that solve the problem, 4) Learn multiple programming languages.

Some tips for becoming a better programmer


Strive to understand what the computer is doing when you execute your program

Understanding what the compiler/interpreter is doing with your source code, how the the processor executes the binary and how information is stored/accessed in memory will help you write more efficient code. The C language is great for learning these things once you start to wrap your mind around it. I would also recommend learning computer organization and hardware. One book I found that really helped me learn what a computer does is The Elements of Computing Systems: Building a Modern Computer from First Principles. I would recommend a casual reading of it, don't get too hung up if you don't quite 'get' it. Read it and see what sinks in. After you get better at C and maybe learn another language, come back to this book and read it again with closer scrutiny.

Break large problems into smaller ones. Logically order the operations needed to complete the tasks that solve the BIG problem

Before I write a single line of code I will spend days, weeks or even months just planning the program out. Flow charts and lists, pseudo code are your friend. Identify your large problem, think about all the different steps needed to get there, write them all down. Determine how to what you need to do to complete each step. Determine if you are doing the same task multiple times (I keep writing data to this log file, I keep checking to see if this array is full, etc.), if so, then you need a function for that. Write this all down as a human readable list of steps. Once you think you have solved the big problem, start coding the small stuff. Write small programs that complete each step you identified and test each little program. Once you've written all those little programs, put the pieces together. Check out How to Think Like A Programmer. It's an excellent book in this area.

Learn multiple programming languages

Again, stick with C until some things are really clicking for you. Eventually though you need to learn another language or two before the "thinking like a programmer" will really sink in. The more languages you learn, the easier it is to learn even more languages. You will begin to see the patterns in languages. You will notice the different approaches that different programming paradigms take. There is a reason that nearly every book, course or tutorial on learning a language follow very similar trajectory: What datatypes exist in this language? How to declare a variable of a particular type. How to output text to the screen, how to cast a variable to a different type, how arrays work in this language, how IF/Then/Else works, How loops work, etc. These are things (nearly) every language has and they are the first steps to learning how to work with that language.

Hope some of this helps!

u/ryanplant-au · 2 pointsr/learnprogramming
u/ooa3603 · 2 pointsr/cscareerquestions

I agree, I think software development skills are going to only further bleed into other stem disciplines in the future. Plus it can be a back up skill if traditional engineering ever gets tiring. That way you're not tied to only one employment source.

I'd also steer away from VBA or .NET and get better at python (for the data analytics in research) and learn C (for potential robotics applications). I normally wouldn't recommend C as a first language since it doesn't do as much for you as other languages, but this FREE edx Course does such a great job of teaching it interactively that I think it's worth it in your case: https://courses.edx.org/courses/course-v1:Dartmouth_IMTx+DART.IMT.C.01+1T2018/course/. I like this course because they have a in built C compiler and a visualizer that shows you what each command you type would do to the program.

CS definitely bleeds over into some disciplines. Especially since you have an interest in research and robotics. I think a combination of ME + a CS minor can get you a foot into some research and/or robotics internships.

As for books, I think a combination of Think like a Programmer and Head First C and Head Start Python would be great "beginner books"


Then if you find out you really like programming you can get into best practices and how to build bigger complex programs with a book like Code Complete.

But before all of that just get the basics with python, then move to C if you ever decide to move into robotics.

u/1234098756 · 2 pointsr/learnprogramming

There's actually a book called Think Like a Programmer. It's mainly aimed at people who know C++, but you can solve the problems in any language.

u/PythonDev2018 · 2 pointsr/learnpython

Learn here www.sololearn.com and practice here https://codesignal.com

Most importantly, get the following book: Think Like a Programmer ( by V. Anton Spraul )

u/haxifix · 2 pointsr/learnprogramming

I completely agree with your observation that programming is more of a way of thinking than it is about knowing the syntax of a specific language. Yes, we may all have our preference or most used language, however; any programmer is going to have multiple languages that they know and it also is usually not difficult to pick up a new language once you're a programmer for that exact reason.

That aside, a quick google search brought this book up. I do not have this book nor have I read it, but it seems like a decent book for $15. Remember, there is no substitute for solving problems on your own though. The book may give you insight and hints and may give you a list of challenges with solutions, but you can also improve your problem solving skills by just googling "beginner programming challenges" and attempting to solve some of them.

Hope this post helped you, if you have any more questions feel free to ask or PM me :)

Best Regards,

Kevin

u/Catatonick · 2 pointsr/learnprogramming

This might interest you.

Think Like a Programmer: An Introduction to Creative Problem Solving https://www.amazon.com/dp/1593274246/ref=cm_sw_r_cp_api_i_inmzCbX7V5G4Z

It’s a book I found a while back that sort of teaches you how to tackle this sort of thing.

u/Elowin · 2 pointsr/learnprogramming

Although it's hard to read books and get better with logical thinking, this is a good book to walk you through steps you can internalize with practice: http://www.amazon.ca/Think-Like-Programmer-Introduction-Creative/dp/1593274246

u/cjsenecal · 2 pointsr/TheRedPill

STEM jobs are highly sought after nowadays and will continue to grow in the future. If you have a degree in computer science or medicine you're golden.

I'm 25 now and I work in the architecture field. I'm not an architect but simply a CAD operator, so I'm basically at the bottom of the barrel as far as pay. One of the things my ex told me when she broke up with me (the reason I came to TRP in the first place, surprise surprise.) was that she didn't think I wanted more in my life. That really set me off and stuck with me because at the time she was right.

Now I'm applying to schools. When I was 18 I originally majored in CSCI but didn't apply myself and dropped out. Now I've made it full circle and would really like to get back into it. I've only completed a couple basic lessons through Codecademy learning HTML and walking through how to make a website. I just need to keep building and learning.

I love tech stuff myself. Always like to have the latest and greatest and I built my own computer so I know how they work, I just need to learn how to communicate with them.

Do you recommend any physical books? I have this one ready to buy already.

u/TheMul · 1 pointr/learnprogramming

I'm going to echo what others have said here and say that you should practice by solving programming problems in your spare time. Each time you complete a problem your confidence will grow and It gets really addictive. That feeling you get when you solve a problem after spending time trying to figure it out is what makes programming so fulfilling.

Breaking problems done until you can code them is the most important programming skill you will have. [This book may help you with this] (http://www.amazon.co.uk/dp/1593274246/ref=pd_lpo_sbs_dp_ss_1?pf_rd_p=569136327&pf_rd_s=lpo-top-stripe&pf_rd_t=201&pf_rd_i=1408065827&pf_rd_m=A3P5ROKL5A1OLE&pf_rd_r=06735F9199DEFJ3BZ7D1).

u/cntx · 1 pointr/learnprogramming

Think Like A Programmer was the best book for me to learn how to break down problems and solve puzzles programmatically

u/PretzelSmoothie · 1 pointr/OSUOnlineCS

I found this book really helpful! It isn't solely about pointers, but rather how to solve problems in C++. However, it has a chapter on pointers and dynamic memory that I found really useful. Definitely worth a gander.

u/PresidenTrumpCamacho · 1 pointr/The_Donald

It seems you only know how to work with the code and write it, but you never actually learned why it works. At least that's my diagnosis from reading your reply. Perhaps the best thing you can do is study better programming logic, so that you understand why things work they way they do. [I've read this book] (https://www.amazon.com/Think-Like-Programmer-Introduction-Creative/dp/1593274246/ref=sr_1_3?ie=UTF8&qid=1480967641&sr=8-3&keywords=programming+logic) and it helped me. Read it and see what you can do after with the languages that you already know.

edit: Clarification - When you understand the reason why a line of code does the action you wanted then it becomes easy to never mix things up, because you will start looking at your code as more then just syntax.

edit 2: Grammar.

u/SatanicSaint · 1 pointr/learnprogramming

There is literally a book called Think Like a Programmer. I haven't read the entire thing but Reddit recommended it to me. Maybe check it out. Also, please chime in if you have read this book and whether you recommend it or not.

u/jephthai · 1 pointr/AskProgramming

This is very much like saying, "I've learned how to write letters, and copied lots of sentences, paragraphs, and poems, and understand what they mean. How do I start writing my own text?" Programming as a creative art is a different thing from understanding the lexical structure of a language, or how to understand data organization, etc. It's as different as reading is from writing.

What you need is not directly connected to C# -- you need to develop a mindset and problem solving skills that let you turn a problem into a solution (which happens to involve programming). Relatively few courses or tutorials teach this, and I'd even say that many people who work in industry don't really have it either, unfortunately.

There are some resources out there along these lines. One interesting one is Think Like a Programmer, a book about analyzing problems and ways to come up with ideas to solve them.

Another great way is to learn from people who know how to do it. It's difficult if you don't know anyone. But one of the best things I've run across are conference presentations from people who've written amazing programs. A neat example (though maybe lower-level and geekier than you're looking for right now) is a talk by Eric Chahi, where he describes the genesis, design, and labor that went into creating the famous video game Another World.

One of the best things I learned in college was in an AI class. My professor taught a certain thought process that became an outline for many of my projects. Start with your data, determine how to represent it effectively, write code that does things with your data as you learn to manipulate it, and start putting the pieces together to do bigger and bigger things until it starts to look like a solution to your problem.

Good luck!

u/fuck-my-username · 1 pointr/learnprogramming

Think Like a Programmer

Easily the best book to get when you're in this situation.

u/ixAp0c · 1 pointr/learnprogramming

I'm reading through Think Like A Programmer (there are other ways of obtaining it without buying it nudge, but it's quite cheap compared to other coding books, if you want to add it to your collection), and it's a pretty good read so far. I'm only on the first chapter's exercises, but the main focus of the book is to teach good problem solving skills (defining the problem, restating the problem into easier to understand terms, dividing the problem, etc.). It focuses on C++ with the examples (the author explains a language had to be chosen, but the thinking patterns can be applied to any language). It's only 260 pages total, compared to some other heavy logic/algorithm books which can be intimidating with high page counts.

u/kippypapa · 1 pointr/iOSProgramming

Buy this book and read it. It has good examples of how to think about solving problems.

http://www.amazon.com/Think-Like-Programmer-Introduction-Creative/dp/1593274246

u/halocupcake · 1 pointr/TeenDeveloper

Lots of people are gonna recommend sites like CodeAcademy to get started, and I do believe it's a good start, but in my experience it's not that good with teaching you the logical thinking required for programming. If you have trouble with this, you should read a book like Thinking Like a Programmer combined with a lot of practice. Have fun!