Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
IMHO, the best book for understanding C++11/14.
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.
C++ Primer 5th edition is what I've been reading this summer since I got out in April. The language is usually pretty friendly but can often times require me to reread paragraphs multiple times to understand what he's saying. I've tried to learn the language with various online methods but nothing has stuck for me like going through the textbook, doing the exercises, and practicing the concepts in mini-programs to make sure I understand them.
Bjarne Stroustrup recently released the 2nd edition of his book "A Tour of C++" which covers all the major aspects of the language that is current through C++17.
It's concise and a very authoritative source.
Now that you have an understanding of what things programming can do, I'd recommend taking a deep dive into some of the fundamentals. Reading something like https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113 will give you a deeper understanding of what's going on under the hood. While you may never use deeper knowledge directly, it can help you think about solutions in a new way.
Very cool! I loved this cpp book:
https://www.amazon.com/Accelerated-C-Practical-Programming-Example/dp/020170353X
It doesn't go over any basics, and lets you learn the language already with the advanced features.
How about this book Think like a programmer. Have a looksie.
Edit: For your problem you could use reverse planning: Start at the end with the result you want and work backwards.
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
Do you already know how to program?
If not, then read Structure and Interpretation of Computer Programs.
If yes, then get C++ Primer by Lippman.
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.
If you're just at conditionals, you'll get to structures and collections later.
This is actually a really good type of project for learning to program with. Your first program here is reasonable, but has a lot of areas of potential improvement (this is expected, you're just getting started). As you learn more about C++ you'll see how you can both simplify the program structure and make expanding the game much easier.
There's a book Beginning C++ Through Game Programming, I'm not familiar with this 2014 edition, hopefully it's been updated to C++11. I (when learning a different programming language) had worked through the equivalent of it in Ada and found the overall structure to be sound so I feel comfortable recommending it without having read it myself (though now I'm looking through my various resources to see if I can get a digital copy through one of the office's digital library services).
The games are all text based which is in line with what you've started here. If you work through it and continue developing this program as you learn more C++ you'll get a pretty decent game by the end.
Well, just for reference, I think The C++ Programming Language by C++'s author is a really good way to start. If you want to practice your problem solving skill alongside with your C++ skill, CodeSignal may help you.
Actually, it is better if you work on some projects, you will learn a lot.
If you want to learn electronics, this is the book to get:
Make: Electronics: Learning Through Discovery https://amazon.com/dp/1680450263
It literally goes through everything you need to know about basic electronics to be able to teach you how to make your own stuff. I only read through part of the first edition and loved it, so I’m planning on getting the second and actually doing the stuff by hand. I believe one of the last experiments is to 3D print a racecar yourself and create all the electronics from scratch to make it work.
You’ll obviously have to buy all the electronics parts (there’s guides in the book on how and what to buy) but if you don’t want to spend the time buying individual stuff online they sell kits tailored to this book. Each kit covers a certain number of experiments and the total will probably set you back about $200.
I saw Reddit threads recently (not specific to the book) about where to get discount electronics, so you could get the book and then look for the parts you need if you have time.
There's a book Beginning C++ Through Game Programming. Teaches C++ with text based games. May be a useful start.
Sounds like the book Think like a programmer might be up your alley. Haven't read it myself, but I've heard good things.
First, have you tried applying to other than the Big N companies? No CS degree, tons of competition, almost a lottery for acceptance. You're setting yourself up to fail.
As for the other bits. Problem solving is the what seperates coders from programmers. It's not a black art or magic or anything -- it is a skill that can be learned. For the most part it comes from experience. A strong math background can help as it is the essence of problem solving.
The algorithm interview pony show -- In practice it's not really about coding them, it's about choosing which one to apply to a given problem. All they are doing is (purposely or unknowingly) applying an arbitrary filter to applicants. Anyone testing if you can knock out a selection sort from memory is really asking the wrong questions. The proper question is when should you use this algorithm or given this sort of problem what sort of algorithm should you select.
A book that might help is Sprual's Think Like a Programmer.
Another favorite is The Practice of Programming. Not so much about problem solving, but a good quick read on some of the basics of professional programming. Read the Amazon synopsis to see if it will float your boat.
I've been looking for courses online that I can enrol in. Using websites like:
www.udemy.com www.edx.org www.coursera.org
So potentially you might be able to start there. I do remember back from my studying days there were a couple of books that really helped me out.
Sam's Teach yourself C++ In 1 hour a day 8th edition
I hope that helps.
When I started my job as C++ programmer I heard more than a few people mention Effective C++ by Scott Meyers.
I 100% recommend his books. He has quite a few, but the two I read were the original effective c++ and then the book he put out after cpp11 was released (the modern c++ version). The modern c++ doesn't replace the first, it just adds to it.
They're relatively short little books and I found them to have a good sense of humor.
I read the modern book first, which I'm not sure if I recommend.
The C++ Primer is an outstanding book that not only teaches you how to program in the language, but also explains why the language works like it does. It makes the language much easier to grasp when you know the "why" behind some of the choices.
I had a lot of my start with C++. This was the textbook I used to learn it initially and I had a lot of fun going through this book:
https://www.amazon.com/Beginning-C-Through-Game-Programming/dp/1305109910/(I would suggest reading only up to right before DirectX chapter though, since I believe the DirectX section has been outdated for a long time now for these books. Personally, I only briefly learned to do DirectX programming in general in college and never used it professionally, so I'm not aware of how often much older versions of DirectX is used, but I remember hearing things like the X files format we used in college got deprecated.)
I have worked professionally as a developer in and out of the game industry and I definitely agree that learning C++ to start would actually be advantageous, regardless of what languages you may have to work in later on because it makes everything easier to learn in comparison I feel. I use C# now for my current role and never had taken courses in it or such, but I was able to self teach it because of my C++ background.
It's tough online to find good reliable sources. If you're wanting to learn the new stuff in C++11/C++14, I really have to recommend Scott Meyers' Effective Modern C++:
Once you're familiar with what's in the book, then you can watch CppCon videos and Boost Con videos for more intermediate and advanced topics:
If you have never made a game of tic tac toe or something similar, your brain hasn't made the connections or learned the skills that would translate from one game to another.
Building a mern stack website is a completely different skillset. It's planning, architecture design and some programming logic depending on the webiste. A game of tic tac toe is pure logic and breaking down a large problem into smaller pieces to solve.
In short, you've definitely made progress! Just in a different area :) If you want to improve in logic, just build more logic heavy projects.
Also, just use google! lol It helps you learn and professionals use it everyday to help them solve real world problems.
Also, here's a great book if you are interested. It will help in learning how to break larger problems into smaller ones. https://www.amazon.com.au/Think-Like-Programmer-Anton-Spraul/dp/1593274246/ref=asc\_df\_1593274246/?tag=googleshopdsk-22&linkCode=df0&hvadid=341791741598&hvpos=&hvnetw=g&hvrand=17615376656973970093&hvpone=&hvptwo=&h...
I actually got into web development a without any bootcamp or degree. I learned mainly through youtube tutorials in order to wrap my head around it but it really started to click for me when I FreeCodeCamp(FCC). I was very poor living abroad at the time so I literally paid for nothing and managed to learn everything I needed. We live in beautiful times where knowledge is abundant!
Anyways, I highly recommend FCC as it helps you think like a programmer and provides you with portfolio projects. I actually got my first job in an ed-tech company before finishing the FCC course as an e-learning administrator. There was no coding needed for the role but I coded at work as much as possible on tasks outside my role just to help others. This eventually led to people seeing my passion and then moved me into the right place, into a dev team. Overall, it took me around a year of learning to code before I got a job in the tech sector, then another 3 months before I switched roles to a junior developer.
Good luck to you!
Also I highly recommend this book: https://www.amazon.com.au/Think-Like-Programmer-Anton-Spraul/dp/1593274246/ref=asc\_df\_1593274246/?tag=googleshopdsk-22&linkCode=df0&hvadid=341791741598&hvpos=&hvnetw=g&hvrand=17615376656973970093&hvpone=&hvptwo=&h...
"Programming: Principles and Practice Using C++" is a classic. There are many problems at the end of each chapter, and a lot of them are pretty challenging.
I've got this https://www.amazon.com/Programming-Principles-Practice-Using-2nd/dp/0321992784 and i've been using that site too but only for when i forget syntax or something like that
I'm going to take a different route at answering this question, perhaps the difficulty did not stem from learning the language but, rather the goal to learn.
A good amount of teaching material in the past was geared towards games. and the way this material was delivered in the past was based off children's imagination first and principles coming later.
The best part about this is this somehow got kids learning some of the languages like C and C++ first, because the goals involved mattered more to them than the actual hurdles they would encounter.
This is how I learned to code as well and somehow the difficulties that most people talked about did not occur to me the entire time.
Heck, I actually didn't realize pointers were difficult because they don't present them to you the way they do in most CS classes or tutorials.
I'd recommend a book like Beginning Game Programming with C++ by Michael Dawson, who seemed to have gotten good at this by tutoring kids.
I guess what I'm trying to say is, it is less about the language or the programs affiliation towards children but, rather the delivery for some people to be drawn to something.
Children, or at least some children look for the fun entertaining and relatable aspects to their imagination, not the principles as we are so often taught as adults and in my opinion, this has birthed some of the best developers and engineers in the industry.
However, this is my opinion on the subject, and everyone is built different. I'm a goal-oriented learner and knowing that has helped me learn a few difficult subjects over time.
Maybe this might work for your niece or not, it all depends on what interests them the most to act as a delivery vehicle of knowledge.
Ice really enjoyed think like a programmer it helps with the problem solving side more than the programming side
https://www.amazon.com/C-Programming-Language-4th/dp/0321563840
That book is documentation written by the creator of C++. Also, if you want pedantic BNF and parser specifications, the ISO has published a certified standard available here: https://isocpp.org/std/the-standard
It's never too late or too hard.
Start here with the Foundations https://www.theodinproject.com/paths
And I've heard good things about this book: https://www.amazon.com/Think-Like-Programmer-Introduction-Creative/dp/1593274246
Come back after those and explain what you want to build and you'll get suggestions for next steps.
Is the course the whole academic year?
I think that half an entire school year on drag-and-drop might be too much and could lead to developing bad habits.
If I were teaching a course, I'd have the drag-and-drop and corresponding GML side by side so those who are more advanced can start to get it faster and even those that don't get it as quickly can still start to see what is happening "under the hood"
This isn't to put down drag-and-drop which I use myself, just that I think that being exposed to GML sooner would be better so students see that programming isn't as scary and that it's just a way of thinking.
Also, I think a resource like Thinking Like a Programmer would be good to draw inspiration from because even if it's not in GML, I think that thinking of an approach to solve a problem is also an important skill that will help them throughout the course and in the future if they stick to it.
As an example, when I was working on a simple game to learn GameMaker, I had several objects rendered to prevent a character from moving but it was more efficient to just check if they were within a rectangle.
It's not the biggest deal since unless they are making AAA titles, any modern PC won't have issues with a few extra objects but the good habit to follow best practice will serve them well in the future!
Also, awesome job on having a course like this in high school. Your students are lucky! Thanks for being an engaged and dedicated teacher!