|
|
|||
The very FIRST book to read for a total noob programmer?
My friend suggests that I start out with languages like python and C#. However, I'm having a difficult time choosing a book to read without prior background in programming - it's hard to tell if a book takes this into consideration.
As far as which language this fundamental book uses, I don't really care. A sequence of books would be really awesome, too! Thanks 9 Replies
You want Learning Perl from O'Reilly. It doesn't matter (much) what your first language is, so long as you learn it well. This book steps you through Perl and gets you started. Later, you can move on to Programming Perl.
The advantage that Perl has over other languages is that Perl makes it very easy to do whatever you want to do. This also means that you can fail quickly... which makes it easier to learn.
Hi Billy,
You might want to take a look at Head First Programming. The examples are in Python, but it is particularly targeted toward new programmers and focuses on teaching you programming fundamentals. From the description: If you have little or no programming experience, this book will get you started with the core concepts of writing computer programs -- variables, decisions, loops, functions, and objects -- which apply regardless of the programming language. Learn the basic tools and start writing code in the programming languages that interest you, and get a better understanding of what software can (and cannot) do. After this book, you could learn more Python with books like Learning Python and Programming Python or you could move on to learn another language with any of the books with "learning" in the title (like Learning Perl) or another Head First book (like Head First C# or Head First Java). Also, it may help you to look at the Introduction or Preface of the books you consider. They'll usually have a section called "Who Is This Book For?" or "Is this book right for you?" These sections will describe the things you should know in order for the book to be useful to you. I hope this helps! Let us know if you have more questions. Rachel James O'Reilly Media
This will probably sound goofy, but I'd actually recommend you read a couple of things at once and immerse yourself in software development as well as the culture and history that surrounds the practice. Like human communication and language, the expression of thought through software is both informed and influenced by the culture and context in which it's created.
Below are just a few recommendations to get you started. You could start with Kerninghan & Ritchie C and pair that with Steven Levy's Hackers. While you're tackling the foundations of programming, pointer references and memory allocation, it'd be pretty interesting to dive into the history of many of the industry's founders, their motivations and the ethics that guided them. Robert C. Martin's Clean Code is really quite solid, and there are some themes in Douglas Coupland's Microserfs that would be really enjoyable to explore while you're developing your coding style. Learning Perl (the llama one) would be good company with Simon Singh's Code Book. Do frequency stats on text and crack WWII codes while you're learning regular expressions. If this topic appeals to you, Bruce Schneier's Applied Cryptography and Neal Stephenson's Cryptonomicon are also enlightening. Finally, if you have an interest in game programming, it'd probably be fun to work your way through Michael Abrash's Graphics Programming Black Book in conjunction with David Kushner's Master's of Doom. By this point, you'll be pretty familiar with a couple of languages, some core software development precepts, and you can rediscover fundamental game development techniques, learn from the gurus, and apply this by teaching yourself HTML5/canvas graphics programming in Javascript. Best of luck on this path, and enjoy the trip. Jason Striegel
i bought the head first python books and they where really fun to read.
once you get the fundamentals of coding, you can code any language, due too all are built the same way, the only difference is how they look and if you have to use ";" after a command or not also be not afraid to use google, there is a lot of good information and code spinets out there that will help you understand how the different commands or Api's work. while generally coding is usually easier for people that are math oriented thinkers (after all it was them creating the languages) but the most important is to actually do as much hands on as possible, its the only way to learn. also if you give your self a small project that will motivate you to code hope it helps
I would recommend, along with Rachel.J, that you look at the Head First books and start with Java or any other object oriented language. You should be looking to establish good programming fundamentals but you need to learn and understand object oriented basics. I always thought that learning object oriented basics in Java was easier to digest.
=========================
Sent to you from my iPad, iPhone, BlackBerry, Laptop, Desktop, or Kitchen Toaster
You may have already answered this question in your own head:
What do you want to do with code and a computer? That may sound basic, but it took me a while to pin down what I wanted, which frustrated me and stunted my progress. Many folks will say "just pick any popular language and jump in", but I don't actually think that works for a lot of people. Having a core mission and at least one "I saw this effing cool project and it made me want to play!" will make life so much easier. So with that:
You can tell I've gone through a bunch of "getting started" books. It's always compelling to see how deftly authors are able to take off the training wheels, and everything I listed above does a pretty good job of not letting you ride into a busy intersection at the wrong time. Finally, the Project Euler website, which has been around for years, (http://projecteuler.net/) offers a series of nicely scaffolded and challenging mathematical problems that people from around the world submit answers to in many computer languages. If you find monotony in solving the problems in any given book, try the site. It's a nice change of pace and digging through answers in alternative languages may spark some new thoughts. I hope you have a lot of fun with whatever you pick up. Regards, Daniel
Hi Billy,
I am a noob programmer too, trying to learn programming by himself. Based on the research I've done, I recommend How to Think Like a Computer Scientist: Learning with Python, by Allen Downey, Jeffrey Elkner, Chris Meyers. Its a really good book, very clear and concise, they use it at the MIT (http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/readings/) and its free! You can access the pdf version at http://www.greenteap...y/thinkCSpy.pdf Of course at some point you will have to learn C++ too because most of the important software we use (specially desktop) are written in C or C++. So I recommend you visit these sites: http://cplusplus.com/doc/tutorial/ and http://en.wikiversit...oduction_to_C++ Good Luck!
I would personally learn Java first, and the Learning Java book from O'Reilly is a good option for learning that. I recommend Java because it is cross platform, and since it is interpreted it is easy to make quick changes and see the results. Also it has a similar syntax to C++ which is a much more powerful language in that it is used for programming applications that run natively on computers.
Anyway that is my thought on the subject. I have not been programming too long, and started with C++, but I wish I had started on Java, and then moved to C++. Zach |
|||
|