Reddit mentions: The best programming for beginners books

We found 1,532 Reddit comments discussing the best programming for beginners books. We ran sentiment analysis on each of these comments to determine how redditors feel about different products. We found 308 products and ranked them based on the amount of positive reactions they received. Here are the top 20.

1. Automate the Boring Stuff with Python: Practical Programming for Total Beginners

    Features:
  • No Starch Press
Automate the Boring Stuff with Python: Practical Programming for Total Beginners
Specs:
ColorCream
Height9.25 Inches
Length7 Inches
Number of items1
Release dateApril 2015
Weight2.14289318664 Pounds
Width1.19 Inches
▼ Read Reddit mentions

3. Head First C#: A Learner's Guide to Real-World Programming with C#, XAML, and .NET

    Features:
  • O'Reilly Media
Head First C#: A Learner's Guide to Real-World Programming with C#, XAML, and .NET
Specs:
Height9.25 inches
Length8 inches
Number of items1
Weight4.49963476742 Pounds
Width1.8 inches
▼ Read Reddit mentions

4. Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers)

Pragmatic Bookshelf
Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers)
Specs:
Height9.25 Inches
Length7.5 Inches
Number of items1
Weight1.51237111732 Pounds
Width1.2 Inches
▼ Read Reddit mentions

5. Java: A Beginner's Guide, Sixth Edition

McGraw-Hill/Osborne Media
Java: A Beginner's Guide, Sixth Edition
Specs:
Height9 Inches
Length1.25 Inches
Number of items1
Weight2.330065647078 Pounds
Width7.25 Inches
▼ Read Reddit mentions

6. Introduction to Java Programming, Comprehensive Version (9th Edition)

    Features:
  • Used Book in Good Condition
Introduction to Java Programming, Comprehensive Version (9th Edition)
Specs:
Height9.9 Inches
Length1.9 Inches
Number of items1
Weight4.519476371 Pounds
Width8 Inches
▼ Read Reddit mentions

8. Head First C#, 2E: A Learner's Guide to Real-World Programming with Visual C# and .NET (Head First Guides)

Used Book in Good Condition
Head First C#, 2E: A Learner's Guide to Real-World Programming with Visual C# and .NET (Head First Guides)
Specs:
Height9.25 Inches
Length8 Inches
Number of items1
Weight3.41496043838 Pounds
Width1.8 Inches
▼ Read Reddit mentions

9. Absolute Beginner's Guide to C (2nd Edition)

    Features:
  • Used Book in Good Condition
Absolute Beginner's Guide to C (2nd Edition)
Specs:
Height9.25 Inches
Length7.5 Inches
Number of items1
Weight1.62701149356 Pounds
Width1 Inches
▼ Read Reddit mentions

10. Python Programming: An Introduction to Computer Science

    Features:
  • Used Book in Good Condition
Python Programming: An Introduction to Computer Science
Specs:
Height9.25 Inches
Length7.5 Inches
Number of items1
Weight2.36 Pounds
Width1.19 Inches
▼ Read Reddit mentions

11. The Everything Learning German Book: Speak, write, and understand basic German in no time

    Features:
  • Adams Media Corporation
The Everything Learning German Book: Speak, write, and understand basic German in no time
Specs:
Height9.25 Inches
Length8 Inches
Number of items1
Release dateNovember 2009
Weight1.04058187664 Pounds
Width0.8 Inches
▼ Read Reddit mentions

12. Eloquent JavaScript: A Modern Introduction to Programming

No Starch Press
Eloquent JavaScript: A Modern Introduction to Programming
Specs:
Height9.22 Inches
Length7.06 Inches
Number of items1
Release dateDecember 2014
Weight2.05 Pounds
Width1.16 Inches
▼ Read Reddit mentions

13. Eloquent JavaScript: A Modern Introduction to Programming

Eloquent JavaScript: A Modern Introduction to Programming
Specs:
Height9 Inches
Length7 Inches
Number of items1
Release dateJanuary 2011
Weight0.82011961464 Pounds
Width0.77 Inches
▼ Read Reddit mentions

14. C Programming Absolute Beginner's Guide

    Features:
  • Great product!
C Programming Absolute Beginner's Guide
Specs:
Height9 Inches
Length7 Inches
Number of items1
Release dateAugust 2013
Weight1.1464037624 Pounds
Width0.9 Inches
▼ Read Reddit mentions

15. Essential Kanji: 2,000 Basic Japanese Characters Systematically Arranged For Learning And Reference

    Features:
  • Weatherhill
Essential Kanji: 2,000 Basic Japanese Characters Systematically Arranged For Learning And Reference
Specs:
ColorWhite
Height7.11 Inches
Length4.7 Inches
Number of items1
Release dateNovember 1987
Weight0.8377565956 Pounds
Width0.93 Inches
▼ Read Reddit mentions

18. Head First Programming: A learner's guide to programming using the Python language

    Features:
  • O Reilly Media
Head First Programming: A learner's guide to programming using the Python language
Specs:
Height9.25 Inches
Length8 Inches
Number of items1
Weight1.85 Pounds
Width1 Inches
▼ Read Reddit mentions

19. An Introduction to Functional Programming Through Lambda Calculus (Dover Books on Mathematics)

    Features:
  • Used Book in Good Condition
An Introduction to Functional Programming Through Lambda Calculus (Dover Books on Mathematics)
Specs:
Height8.75 Inches
Length6.5 Inches
Number of items1
Release dateJuly 2011
Weight1.00971715996 Pounds
Width0.5 Inches
▼ Read Reddit mentions

20. Python Programming: An Introduction to Computer Science, 3rd Ed.

Python Programming: An Introduction to Computer Science, 3rd Ed.
Specs:
Height9.2 Inches
Length7.5 Inches
Number of items1
Weight2.0502990366 Pounds
Width1 Inches
▼ Read Reddit mentions

🎓 Reddit experts on programming for beginners books

The comments and opinions expressed on this page are written exclusively by redditors. To provide you with the most relevant data, we sourced opinions from the most knowledgeable Reddit users based the total number of upvotes and downvotes received across comments on subreddits where programming for beginners books are discussed. For your reference and for the sake of transparency, here are the specialists whose opinions mattered the most in our ranking.
Total score: 1,583
Number of comments: 13
Relevant subreddits: 2
Total score: 172
Number of comments: 12
Relevant subreddits: 1
Total score: 76
Number of comments: 8
Relevant subreddits: 7
Total score: 13
Number of comments: 6
Relevant subreddits: 3
Total score: 13
Number of comments: 3
Relevant subreddits: 1
Total score: 12
Number of comments: 3
Relevant subreddits: 1
Total score: 7
Number of comments: 5
Relevant subreddits: 4
Total score: 5
Number of comments: 5
Relevant subreddits: 1
Total score: 4
Number of comments: 4
Relevant subreddits: 2
Total score: 4
Number of comments: 3
Relevant subreddits: 2

idea-bulb Interested in what Redditors like? Check out our Shuffle feature

Shuffle: random products popular on Reddit

Top Reddit comments about Introductory & Beginning Programming:

u/FrontpageWatch · 1 pointr/longtail

>Why is it so hard to figure out where to start?
>
>It's no secret that software development has exploded in the past 20 years. New software startups pop up like dandelions in the spring. It then follows that a lot of people think software development is a good career choice and are afraid of missing out on a lot of great opportunities.
>
>Software developers are, in general, pretty opinionated. I doubt this is unique to developers, but it gets tiresome when you've dealt with it for years. If we're not fighting over what operating system is better, then it's what language is better. If it's not that, then it's code editors, or databases, or frameworks, or bug trackers, or development processes, or...or...or. It's like we enjoy fighting.
>
>In a time where more and more people are becoming developers, it's not enough to be just "a developer" anymore. No, to feel superior now, developers need to somehow differentiate themselves from both the non-developer “rabble” and their fellow developers.
>
>This mentality has lead to more coding languages being developed that purport to "fix" issues with other languages. New frameworks are built to "fix" issues with previous frameworks. And on and on.
>
>All this leads to a huge amount of choices, opinions, and resources. Naturally, that makes starting to learn, daunting.
>
>Since I'm a developer too, I'm susceptible to the same opinions and biases that I just railed against. The difference is, I'm right. I'm kidding, seriously, calm down everybody. Here are my suggestions.
>
>Choose your weapon language
>
>As someone once said: “the weapon doesn’t make the man.” It’s probably a quote from some B martial arts movie or Dragonball Z, but the philosophy holds true for programming languages. A good developer is a good developer regardless of language. However, you need to start someplace, and if you pick your first language wisely, you’ll drastically shorten the time to hit your goal.
>
>Picking a language boils down to what you want to do. This is a quick list of general development goals and what language(s) are your best options to get there:
>
>1. Front-end web development (user interface and interaction): Javascript, HTML & CSS
>1. Back-end web development (services that front-end web apps and mobile apps call out to): Ruby, Python or Javascript
>1. Mobile development: Swift (iOS) or Java (Android)
>1. Windows development: C#
>1. MacOS development: Swift or Objective-C
>1. Operating systems, file systems, embedded systems, etc: C/C++
>
>Naturally, there are other options for each of these. Javascript is useful for items 1-5, for instance. But the list is a good starting place as-is.
>
>How to find good resources to start learning
>
>There are a ton of resources to learn to code out on the web. How do you sift through the chaff and find the real gems?
>
>Most resources fall into the following categories:
>
> Books
>
Videos
> Blogs/tutorials
>
Courses
>
>Books are the traditional go-to resource. Search Amazon.com for your topic and read reviews. Make sure that any books you're considering are new. Languages change and older books could slow your progress.
>
>A lot of people have gravitated to videos to learn coding and other topics. YouTube is the first place most people look. Fair warning, this is going to turn up a bunch of crap. Look at how many subscribers a given instructor has, and watch some videos to see if their style and method works for you. Another possible issue is that because video is more difficult to update for new versions of a language (or corresponding tools), some videos might be outdated.
>
>For blogs and tutorials, a simple google search like "best python tutorial" or "best swift tutorial for beginners" is a great place to start. As with videos, you'll have to try a few to see how they work with your learning style.
>
>Online courses are the newest resource on the scene. Codecademy is one that a lot of people find immediately. However, after I talked to a lot of people who tried it, none really thought it did a good job. Free Code Camp or The Odin Project are both highly regarded for web development. Udacity, Coursera, Udemy all have courses in different genres. Each has reviews so you can compare and only look at ones that helped others. My specific examples follow in the next section.
>
>Where you should start, specifically
>
>Each development goal in the above list is different enough to require different starting points. I’ll list the place that I’d recommend you start for each one. I have not personally tried all of them, but have come across them when doing research. There also might be better ones, and so if you know of any, let me know and I’ll update this list.
>
>1. Front-end web development: Free Code Camp
>1. Back-end web development: Ruby (for Rails), Python (for Django), Javascript (for Node)
>1. Mobile development: Swift Lynda’s Swift Essentials (check your local library to see if you get a free Lynda account with a library card) or Flatiron school’s free Swift course, Swift Programming book or Java Head First Java, University of Helsinki’s MOOC
>1. Windows development: Head First C#, Pluralsight’s C# course
>1. MacOS development: Cocoa programming for OS X, or the same courses for mobile Swift
>1. Operating systems, filesystems, embedded systems: C++ How to Program book, C++ Tutorial for Complete Beginners
>
>Once you pick your language and starting point and you start learning, some things will be obvious, but others will be difficult to understand. You’re going to run into trouble and with concepts and code errors. That’s normal. We’ve all been there. Getting unstuck takes practice too.
>
>How to get unstuck once you’ve started
>
>Once you start learning to code, you're going to run into problems that you don't know how to solve. This is normal and part of the process. You don't really learn unless you struggle through it. That said, you won't always be able to move forward without some help. So how do you find that help?
>
>First off, forget books. They aren't a great place to start here, because the number and types of errors they can cover is so small.
>
>Online is the easiest place to find help. Most devs look for solutions on StackOverflow or just google the error message (if they have one). Other solutions are to find newsgroups or forums dedicated to the language you're using.
>
>How to use Google to get unstuck
>
>When you first try to google an answer to your problem, you're going to run into the issue of what to search for. Experienced developers are really good at this part, but unfortunately, it's hard for beginners, who need it the most. So here I'll give you some expert hints on how to improve your search results.
>
>1. Always include the name of the language you're using. If you're using a specific tool, database, or framework, include that as well. Don't include all of them, just the ones that you believe are relevant. This will take practice.
>1. If you're getting an error message, include that in quotes. Edit the message to contain only the core of the message so it doesn't reference any files, classes, path or filenames that are specific to your program or computer. The trick here is to make the error message as specific as possible while still being general enough to apply to others who are using the same language/tool/etc. but in a different context.
>1. If you're working through a publicly-published problem from a book or course, add that information to the search.
>1. Explain what you're trying to do, with the fewest words. This is tough for developers of all levels. For a beginner, you may have trouble coming up with the right terminology. This is where the books, tutorials, and course materials come in handy. They should use the right language if you're doing something similar to what's covered in them. If not, you're going to need to try some different wording. Remember, other beginners are going to be having problems too and might explain the problem the same way.
>
>Here are a few examples I’ve used (minus the quotes):
>

u/philosopheezy · 3 pointsr/learnjavascript

If you really want a book, there are a few that I've come across that I've liked and will suggest. Eloquent Javascript is a good one (it's free online!)

https://www.amazon.com/Eloquent-JavaScript-Modern-Introduction-Programming/dp/1593272820

Depending what you want to learn to do, also good:

https://www.amazon.com/Web-Design-HTML-JavaScript-jQuery/dp/1118907442/ref=pd_lpo_sbs_14_t_0?_encoding=UTF8&psc=1&refRID=YZ1P5N33ZRNPZG6SNM27

You just asked about books, but I would suggest unless you REALLY know you learn best by a book, I'd start with online tutorials (I liked Codeacademy) just to quickly get your feet wet. Codeacademy was a good way to learn the basic syntax you'll need. The books I've read, while great, tend to go deeper (not good at this stage IMO) than online tutorials which negate your "quickly" condition. Looking back, I didn't get a lot from the books until I was comfortable making code that did SOMETHING (and not much more) on my own. To me, that's the most effective way to learn quickly these days. It's easy to get sucked down a rabbit hole of feeling like you need to be an expert to start but looking back this is the plan that would have saved me a lot of spinning my wheels: 1st, do online tutorial (just 1 MAYBE 2); 2nd, then code SOMETHING (just to see you can make the computer listen to you); 3rd, When you feel like you can do something but don't understand exactly why or how it works THEN I'd get a book. That's when you'll get the most bang for your buck IMO. It's so easy to spin your wheels thinking you're one book or tutorial away from becoming an expert. It's cliche but the best thing really is to learn a little and then start making things. Take advantage of supportive programming friends or communities and don't be afraid to ask for help. You will learn more by making silly mistakes than if your code magically works the first time. Hope this helps!

u/rustajb · 6 pointsr/gamedev

That's a ton of questions and concerns. I'll give my own anecdote.

I have adult ADHD. I have to self-learn as I find classrooms and groups study difficult to deal with. You, like me, have a lot of ambition, ideas and drive. It can seem overwhelming the amount of things you must learn to even start making the most basic of games. I only decided about a year ago that I wanted to dive into game design. I want to make games so badly it's become a laser focus in my life.

There's no correct path, no right way to go about it, but you have to start somewhere. For me that was with learning a programming language: Python. Now you won't see much Python used in gaming, it's rare, however I did learn basic CS skills from spending about 6 months doing nothing but that. I made a few simple text based games like Zork and then started working on a Roguelike. I quickly got in over my head and got frustrated. I'm very glad I spent this time learning Python though, it's made learning C# and JS much, much easier.

That frustration sent me looking for alternatives. I played with GameMaker: Studio. That's a really easy game engine to use, you could feasibly make an entire game without ever coding a single line. It may not be a great game though. That was fun for about a month. In that time I created several very basic game prototypes. I also got a taste of using someone else's game engine. Something I know I could code given enough time, but I want to start making games now.

Then a friend turned me onto Unity. I'm using the free version right now and learning even more. I made a basic Asteroid clone using a great tutorial I found online. That in turn caused me to buy the book Unity 3.x Game Development Essentials by Will Goldstone (Who works on Unity if I am not mistaken.) That book walks you through making a simple first person game and covers everything from start to finish.

While working on my Asteroid game I thought it would be fun to create my own game assets like the ship, the asteroids and the enemy UFOs. So I picked up Blender and started using tutorials. The book I bought for it sucked so badly, I found online tutorials were much more conducive to learning that particular application. It's nice to be able to see someone working on it live, and be able to pause and rewind as necessary. It takes me full days to finish an hour long tutorial that way, but I am learning so much.

My point is, pick one thing and learn it first. If you want to be a game programmer, learn a language like Python or JavaScript. Make some simple games in it. As you learn, you will begin to see, in your head, how you could make a game. Everything suddenly starts to come into focus. The more you code, the more you will see how to do the things you want to do in any game. Even if you don't stick with coding, it's a useful skill I would recommend anyone have. As you work on your first games, you'll see your own limitations and want to expand them on the next project. I really recommend this book for your first language: Python Programming: An Introduction to Computer Science as it will teach you a language as well as the basics of CS and it is well written, fun and easy to learn from. It only took me a month to finish it.

Iv'e been on this path for almost a year now and still don't have a game worthy of showing to anyone. I am building my confidence. Just dive in, start somewhere. Stop thinking about how much you have to learn and just start learning. I put off learning all of this for almost 20 years, I wish I had started sooner. But right now there is an explosion of learning materials, there really never has been a better time to start.

u/Aberu · 2 pointsr/iamverysmart

It wasn't the alphabets that were hard (katakana and hiragana). It really was the kanji (3000 for high school level fluent, I got up to about 500 in 2 years). Some were intuitive, playing off of other kanji (tree = ki and if you draw three ki's in a triangle you get mori = forest), but many were just randomly throwing other kanji inside of kanji. You had single characters with 22 brush strokes.

Just needlessly complicated as hangul (korean written language) kind of demonstrates. I think Japan (according to some literature I used to read on it) is moving away from kanji being used colloquially though. It's being blamed on mobile phone auto-input. Kanji is kinda strange, you have to physically write it often to continue to understand it. If you just type it in over and over you might still forget it.

The hardest part in Japanese for me was just the connecting wards like "ga" "wa" "no" "de" "ni" etc... The rules for these aren't always consistent, it's almost like how English has some confusing rules for people learning it.

Overally really fun language to learn and it gave me a different perspective on language as a whole and made me a bit more culturally open-minded. I'd say learning as much as I did about it was a great addition. If I watch things that have references to Japanese language/culture it's nice to have some level of familiarity with the subject matter.

I watched the "Princess Kenny" episode of South Park for instance with the words they were saying in japanese. They had the lines written out in a typical way you would do for a Japanese television show, and the acting was consistent so I had an appreciation for the effort they put into that. One of Matt Stone and Trey Parker's friends is a Japanese guy they knew from college and was the narrator of their first animated film. You can tell he still consults them for episodes and does voices.

The Princess Kenny episode made me laugh really hard when one of the characters saw the anime-ized Princess Kenny and said "ikimashita" while blushing. Basically he said "I just came". So that was pretty funny since it makes sense in the context of the situation and how they are stereotyping for comedy the whole Japanese anime thing and otaku culture.

EDIT: Thought of another challenging thing about it. Sometimes people's names will have a different vocal strength given. There is Se-n-na and Se-n-NA for instance. Also there is Se-NA and SE-na. This is based on the kanji used in their name, and some words (more rare) have this same trait. I hear chinese is far more difficult in this way though. Pronunciation was probably my strongest point, regularly got compliments from the teacher for picking it up easily. It's kanji that was the hardest for me for sure.

http://en.wiktionary.org/wiki/%E9%AC%B1

There's a kanji that uses 24 strokes.



If you want to get started, here's the dictionary I own.

http://books.google.com/books?id=jvwxRz7s_e4C&pg=PT14&dq=kanji+dictionary&hl=en&sa=X&ei=-KgpVK6qEIityATqvoKwCg&ved=0CEwQ6AEwBTgK#v=onepage&q=kanji%20dictionary&f=false

And this is my Kanji dictionary

http://www.amazon.com/Essential-Kanji-Characters-Systematically-Reference/dp/0834802228/ref=sr_1_1?ie=UTF8&qid=1412016500&sr=8-1&keywords=kanji

Making some genkouyoushi out of graph paper is great cheap way of practicing writing kanji.

http://www.halley.cc/nihon/patterns.html

My grammar/vocab study book was called "Modern Japanese" and it doesn't look like it's in print anymore. Too bad it was pretty strong for conversational. Here it is.

http://www.amazon.com/Modern-Japanese-3rd-English/dp/1878463098/ref=sr_1_3?ie=UTF8&qid=1412016610&sr=8-3&keywords=modern+japanese

EDIT2: Thanks for the gold!

u/emporsteigend · 3 pointsr/compsci

You may have to look up some of the terms in my reply and I apologize but, hey, you'll learn something.

I recommend Python, for the simple reason that Python manages to integrate several paradigms in one programming language (imperative, object-oriented, and functional) and a lot of what you learn with Python will carry over into other languages if you learn it deeply enough. E.g. Python has metaclasses which I believe were originally implemented in an older language called Smalltalk and so when I went over to experiment with Smalltalk (I like the Pharo implementation), it was no sweat understanding the idea of metaclasses.

Python also prepares you to read the kind of pseudocode you'll see on Wikipedia and in a lot of textbooks because Python reads a lot like pseudocode; it is an eminently readable language and actually enforces formatting conventions for clarity.

And should you decide to do a big advanced project, there are very frequently well-developed libraries available immediately available for your purposes, which is not an advantage you will get with some of the more obscure / less-used languages mentioned here.

For example, need to do machine learning? No problem! There's PyBrain.

Need to study complex graphs? No problem! There's NetworkX. (If you live in the United States, it's your taxpayer dollars at work, so enjoy.)

Need to do genetic algorithms? No problem! There's PyEvolve.

There's even a package for proving theorems in logic, FLiP.

Ruby comes recommended for similar reasons and has a purer object-oriented basis but (in my experience) fewer good libraries.

I have to disagree with several recommendations here: Lisp has been recommended in several posts and I have doubts about how much of a better or effective programmer it makes you; the evidence for such a claim is unclear and pretty much all anecdotal. And a lot of it is based on stereotypes about marginally competent enterprise Java programmer-types. Now that a number of programming languages have taken Lisp innovations like garbage collection and lexical closure to heart, there's not that much of an advantage anymore in Lisp. (IMO.) More to the point, I find that neither any implementation of Common Lisp nor Scheme enjoy quite the same support as Python.

For instance, even though Lisp has a reputation for being used widely in artificial intelligence, the AI libraries I can find for Common Lisp are relatively underdeveloped compared to those you can find for Python. For instance, in the case of soft computing methods in AI (which IMO are far more promising than logic-based approaches), between PyBrain and PyML you've got neural networks, SVM, reinforcement learning and more whereas I could only find fledgling projects like cl-machine-learning for Lisp, which apparently hasn't been worked on since 2009. (The Lisp community is notorious for not finishing projects once started.)

If you must use Scheme, I highly recommend Racket because it appears to be the most full-featured Scheme. (That's a major issue with Scheme: the standard specifies very very little and so the differing implementations tend to be kind of incompatible. One says that Scheme suffers from horrible "balkanization".)

Logo was mentioned, too. The NetLogo implementation is good for fast agent-based programming and a few other things (I found it highly useful for writing a Kohonen network implementation because of its inherently spatial character) but Logo as a language is not that great.

Prolog IMO is fucking terrible. Using it is like pulling your own teeth.

Pure functional programming languages like Haskell are kind of wanky as well. It's usually rather difficult to do anything useful with them because they disallow side effects completely but on the other hand, since you're interested in logic and computation, you'll get a lot of exposure to theoretical computer science ideas through these kinds of languages.

Bottom line is with Python you'll probably get more work done faster and have more fun that way too. And that's what counts.

One last note: I don't like SICP. Go on Amazon and look at some of the negative reviews to see what I mean. I can't exactly say what's a good intro to computer science because I'm well past that point now but this guy appears to come warmly recommended:

http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1887902996

And when you're a little more advanced, and want to dive into data structure and algorithms, the Segdewick "Algorithms" book is excellent, even if it uses Java for all the code:

http://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X

u/clintwn · 1 pointr/arduino

Happy to help!

>Did you stabilize it somehow with a gyro and arduino or was is literally just the receiver, transmitter and ESC?

Flight controller with built in gyros handled all the stabilization. FCs are really cool and you can have as many features as you like or virtually none at all. I used a CC3D, but like I said that was years ago and you'll probably find much better. Apparently some even have built-in RC receivers.

Every programmer hates their own code, unless they don't want to get any better at it. Finding one language and getting good at it comfortable with it is a good start, and it doesn't have to be c/c++. I started with perl, quickly switched to python, probably suck at both to this day.

There's a lot to be said about learning libraries and their implementations rather than trying to learn a particular language.

I've also written java code that ended up in production and is still used. The only C++ code I've ever written was for arduino and other microcontrollers, which is loaded with tons of convenience features that have a tendency to hide the hard parts, like memory management and stuff, but you can still get at them.

There's a surfeit of free information out there, but if you want a short booklist I recommend these:

u/CodeTamarin · 2 pointsr/computerscience

The Stanford Algorithm book is complete overkill in my opinion do NOT read that book. That's insane. Read it when you've been doing programming for a while and have a grasp of how it even applies.

Here's my list, it's a "wanna be a decent junior" list:

  • Computer Science Distilled
  • Java/ C# / PHP/ JS (pick one)
  • Do some Programming Challenges
  • SQL
  • Maybe build a small web app. Don't worry about structure so much, just build something simple.
  • Applying UML: and Patterns: An Introduction to Object Oriented Anaysis and Design Iterative Development
  • Head First Design Patterns
  • Clean Architecture
  • Refactoring: Improving the Design of Existing Code
  • If you're interested in Web
  • Soft Skills: Power of Habit , A Mind for Numbers , Productivity Project

    ​

    Reasoning: So, the first book is to give you a sense of all that's out there. It's short and sweet and primes you for what's ahead. It helps you understand most of the basic industry buzz words and whatnot. It answers a lot of unknown unknowns for a newbie.

    Next is just a list languages off the top of my head. But you can pick anything, seriously it's not a big deal. I did put Java first because that's the most popular and you'll like find a mountain of resources.

    Then after some focused practice, I suggest grabbing some SQL. You don't need to be an expert but you gotta know about DBs to some degree.

    Then I put an analysis book that's OOP focused. The nifty thing about that book, is it breaks into design patterns nicely with some very simple design patters to introduce you to design patterns and GRASP.

    Then I put in a legit Design Patterns book that explains and explores design patterns and principles associated with many of them.

    Now that you know how code is structured, you're ready for a conversation about Architecture. Clean architecture is a simple primer on the topic. Nothing too crazy, just preps you for the idea of architecture and dealing with it.

    Finally, refactoring is great for working devs. Often your early work will be focused on working with legacy code. Then knowing how to deal with those problems can be helpful.

    FINAL NOTE: Read the soft skills books first.

    The reason for reading the soft skills books first is it helps develop a mental framework for learning all the stuff.

    Good luck! I get this isn't strictly computer science and it's likely focused more toward Software Development. But I hope it helps. If it doesn't. My apologies.
u/MerryMage · 2 pointsr/emulation

Getting much off-topic here, but:

Programming is kinda like art. It doesn't matter if you're using oils or watercolours or crayons or charcoal or pencil or a Biro, just do it. You can pick up other art-forms later, and it'll be much easier to once you're learnt one. What's more important is that you start, have an interest, and are willing to practice and learn.

That said, it'll likely be easier to pick a language that has a good beginner community around it as a first language. Python is an example with a huge beginner community. Perhaps you might prefer to start with an interactive tutorial like the free interactive version of How to Think Like a Computer Scientist, or you'd prefer to read a book like Python Programming for the Absolute Beginner, or perhaps both! Doesn't matter.

Once you're reasonably comfortable with a language, you can pick up more. A language you might want to familiarize yourself with eventually would be C, since it's practically the lingua franca for systems-level programming. If you're interested in emulation, you will eventually want to become familiar with the assembly language for the types of CPU(s) you're interested in emulating.

Good luck.

u/medusa4 · 1 pointr/duolingo

Yes! As for books these one's have really helped me:

  • Everything Learning German This one is super great for grammar. It has exercises at the end of each lesson so you can practice too :)
  • Collins Complete German This one is probbbbably my favorite. I love it, it has a guide for pretty much everything you need to know in the grammar, it explains everything well, and it has verb tables so you can study the conjugation. It has some vocabulary in the back too.
  • Graded German Reader This one is also really awesome. You can find a used one for 10 bucks on amazon, just the new ones are really expensive because I don't think they are made anymore. This starts with simple reading passages and gradually gets more difficult while adding new words- but it's at a perfect pace so you don't get overwhelmed, and you will probably be able to completely understand.
  • Cafe in Berlin Another german short story book. This one is great too.
  • German Pre-Intermediate Reader Another reader- this one incorporates the top 1000 words in German.

    I know I have more but these are my favorites! As for movies/shows.. when I watch like youtube videos (try 'easy german') or kids shows I tend to watch them without subtitles. If I'm watching an adult movie/show I pretty much have to use subtitles otherwise I can't pick up anything. I usually put the subtitles in German though, because I read better than I listen!

    Let me know if I can help you with anything else :)
u/solidh2o · 1 pointr/singularity

I'm at work right now ( library is at home), but there's a few books I can recommend. there's no one great path though, it'll be "find a hole in knowledge, fill it, move forward until you find another hole in your knowledge".

First, learn a programming language, and master it. Then learn to abstract that. Use this book as a good way to abstract. You'll come to recognize two basic abstraction: first, every language does all the same things, in just a little different way. The book acts sort of as a Rosetta stone for comp sci. Second, some languages are better than others for some things, and for AI, none of that matters, just pure processing power. I started the project in c# ( very simple for prototyping and testing, not super efficient) , and then swapped to C++ when I started working the outcomes into a game world to see evolutionary behavior better ( using the unreal engine) .

Next,Hofstadter has two books worth reading, "I am a strange loop" and "Gödel, Escher, Bach: An Eternal Golden Braid" - this ( combined with Kurzweil's "How to Create a Mind") will give you some of the more theoretical on neurology/computer cross over. read them both, even though it's 60% the same book. there's enough differences to make both worth while.

On the biology side, This book has some info on what it means to be "alive" which is a prerequisite for what it means to have "artificial intelligent life" this will likely lead you into genetic research and how DNA works - it's important, but not until you get there.

On the sociology / economic side, I can't think of one book that would be a great starting point. I will say that specifically understanding risk/reward principals and game theory are critical to development of any AI that goes beyond a linear regression model. Also look into OODA loops, it's a military term for "Observe, orient, decide, act"

For machine learning, there's no one better to teach it than Andrew Ng, the chief scientist at Baidu. His course at Stanford is recorded and free to take on Coursera. You can find it here

Saw your PM, but figured I'd post it here since you weren't the only person who pinged me on it :). Happy to answer any more questions, but i'm not online all that much so please be patient!

Take care and good luck!

u/Adhoc_hk · 5 pointsr/C_Programming

C is worth learning in my opinion. I'm a CS student so certainly not an authority on languages, but everything that's really cool I want to work on, and the problems that really interest me, tend to be in C. If you ever wanted to study operating systems then C is vital. You can go download the entire linux kernel and read it's internals, study how it works and try to wrap your head around why certain things were done in certain ways.

If you want to study algorithms and data structures, c is wonderful. Have you ever wondered how queues are actually structured in memory while you were using Java? Or lists, or strings, or objects in general?

Memory management, how the stack works when a function gets called, how the memory alignment of certain structures can decrease cache misses... There's so many cool topics that you can really dig into with C that you don't have the freedom to really mess with in higher level languages. The downside being you have plenty of rope to hang yourself with, but man the problems you run into can be so much fun.

Embedded systems are cool. Being able to take an Atmel or TI microcontroller and cobble together beautiful useful systems. This is what really invigorated me with regards to C when I was starting out. Snag yourself a cheap ATtiny AVR, a couple data sheets, a programmer and some tutorials and dive in.

As far as an IDE, I really wouldn't recommend one. Just use a text editor of some sort. For instance I do a lot of my coding right now in Sublime Text. All I really use it for is the highlighting. Everything else is done in the terminal. gcc is free and works fairly well, and in regards to referencing I generally just use the man pages or google when I want to get a quick idea on how to use something.

From what I've seen, and what I've heard from friends who are already working, if you can write good clean C it will help you in any other language you pick up. The language doesn't hold your hand.

K&R is one of those books you certainly want to have, but it isn't really what I'd start out with at first. I'm a little embarrased to admit it but I started with "Absolute Beginners Guide to C" by Perry. I didn't have any type of programming background though so you might be more inclined to something like "Programming in C" by Kochan.

u/davidNerdly · 4 pointsr/web_design

Just some I like:

Dev


  • [You Don't Know Javascript (series)(]https://github.com/getify/You-Dont-Know-JS). Short and sweet mostly. Well written. Some are still pending publishing but there are a couple available now. I believe you can read them for free online, I just like paper books and wanted to show some support.

  • Elequent Javascript (second release coming in november). Current version here if you are impatient. I have not personally read it yet, waiting for the next revision. I recommend it due to the high regard it has in the web community.

  • Professional JavaScript for Web Developers. Sometimes called the bible of js. Big ole book. I have not read it through and through, but have enjoyed the parts I have perused.

    Design


    (I am weak in the design side, so take these recommendation with a grain of salt. I recommend them off of overall industry cred they receive and my own personal taste for them.)

  • The Elements of Typographic Style. Low level detail into the art and science behind typography.

  • Don't Make Me Think, Revisited. I read the original, not the new one that I linked. It is an easy read (morning commute on the train was perfect for it) and covers UX stuff in a very easy to understand way. My non-designer brain really appreciated it.

    below are books I have not read but our generally recommended to people asking this question

  • About Face.

  • The Design of Everyday Things.

  • The Inmates Are Running the Asylum.


    You can see a lot of these are theory based. My 0.02 is that books are good for theory, blogs are good for up to date ways of doing things and tutorial type stuff.

    Hope this helps!


    Battery is about to die so no formatting for you! I'll add note later if I remember.

    EDIT: another real quick.

    EDIT2: Eh, wound up on my computer. Added formatting and some context. Also added more links because I am procrastinating my actual work I have to do (picking icons for buttons is so hard, I never know what icon accurately represents whatever context I am trying to fill).
u/tech_tuna · 1 pointr/learnprogramming

I'm going to agree with others and recommend that you not go with C++. The first programming class I ever took was in C++ and it very nearly made me give up on programming forever.

If you want to learn how to code "closer to the machine", go with C. If you want to learn something useful and fun, go with Python or Ruby. If you want to learn useful Windows-specific skills, go with C#. C is much simpler than C++ but still challenging compared to VB. Also, it's still widely used and probably will be used forever. Python and Ruby are just plain fun and make many tasks easy to do. They're also excellent general purpose languages to have in your tool belt. C# is great if you're coding on Windows and significantly easier than C++ (Java is an option too, it's very similar to C# but since you already know some VB, C# will probably be easier to pick up).

There are plenty of other languages you could try as well, at some point you'll want to dabble in a functional language just to see how wildly different that is from object oriented and procedural languages.

Actually, I just finished this book and it's a very cool way to get a quick idea of just how many options there are:

http://www.amazon.com/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X

Oh jeez, almost forgot, you'll definitely want to tinker around with some Javascript and do some client side web stuff (and node.js on the backend if that interests you).

u/ProfessorKaos64 · 1 pointr/LinuxActionShow

Too bad I didn't start my github project out in python, most of it is in bash. For some reason github tells me on the code scale I have 80% in python O.o. Maybe I do some things in similar fashion with .shinc modules for the main script. If you're interested in retro gaming, you could always help me and JC with RetroRig. Most folks like to make games with python to start out, and once I find time myself, I play on going through the book Python Programming for the Absolute Beginner. I've leafed through it, and heard reviews from folks I know, and they love the book. It's a great way to sharpen up the skills. As far as projects, there are probably some sites that could help parse OSS/FOSS projects based on yoru interests.

GitHub only seems to sort/search by trending projects. The suggestions for OpenHatch is nice, and seems promising. They reason I started my project, was not because I like programming or anything (I am not a programmer by any stretch, but very technically minded), but because I loved the idea of making what I am doing. I started out small, and loved every little accomplishment I achieved. I now have a contributor, who also visits this subreddit, /u/beaumanvienna, and it's the most fun thing in the world to bounce ideas of people. Just think of programs you use, and how you can make them cool. The best work you could do and work on, is work you love and are interested in. Then you will be extremely proud of your accomplishments at the very minimum.

Edit: spelling.

u/soupnap · 2 pointsr/ILiveIn

Hi.

I used a lot of different material. Textbooks like the Genki series at first, then the Intermediate level text books from the same company afterwards. I also remember using an electronic dictionary by Casio, as well as Essential Kanji by P.G. O'Neill. I want to stress however, that reference material like kanji dictionaries alone will not really be sufficient – you need something else that really drives you towards learning, and I certainly had that.

I was very into Japanese music (garage rock and psychedelic music) and have an embarrassingly large collection of albums that I started collecting at young age. I would listen to lyrics, read liner notes, and perhaps most importantly read magazines about music.

I'm convinced I would never have been able to muster the dedication required to learn all the kanji if it had not been for my passion for music. This is because learning a widely different language is a daunting task. Fluency is not something a person will reach without truly dedicating themselves in a way that works for them.

So I can suggest combining a dedicated mindset towards studying with your interest for Japanese media of any kind, if you have that. I have known people who are into manga and anime (a world I know next to nothing about) and see it solely as entertainment, but very few of those people ever got serious about actually investing themselves in learning. But that's not necessarily a bad thing, as we all have different goals in life.

Anyway, to sum it up a text book like Genki (through which you make regular progress) and a good kanji dictionary such as the one by O'Neill are a good foundation. But in the long run, it is more important to have something that lets you really use what you have learned. For me, that was my passion for music and everything related to it.

As I wrote in another reply, I had never actually spoken to a Japanese person before moving here, but I had been studying so much that I had been able to pass the most difficult JLPT and was comfortable reading and writing. Actually talking in Japanese is something I had to start from scratch after coming here.

Feel free to ask more questions if you'd like – I'd love to be of help.

u/minond · 2 pointsr/webdev

Not really related to mobile development, but he should still really enjoy these if he hasn't read them already:

u/acid_wrappers · 16 pointsr/datascience

edit Supposedly this guy is OG in data science. http://www.datasciencecentral.com/profiles/blogs/hitchhiker-s-guide-to-data-science-machine-learning-r-python




My friend has a bio background and doing well as a data scientist consultant. I wouldn't shy away with a lack of math.

I'm still an amateur, so take this with a grain of salt.
I'd also like to share my strategy for learning data science so far.

I have a math background, which is useful but not required. Knowing linear algebra and differential equations, some analysis stuff is useful for developing a deeper intuition into how the machine is learning, but not necessary. IMO data science is a life long journey as it can be applied to many fields. It may be useful to learn more math later on as it get's deeper, but surface level knowledge should suffice.

For linear algebra, I've found the first lecture to be the most useful. http://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/video-lectures/ It basically describes how we can translate lines into vectors and find solutions. It may be useful for continue learning, but in the beginning I believe surface understanding should suffice. If you're looking to build new data analytic tools, understanding the maths at depth is a must. But if your goal is to apply the tools already in existence, you can get by with a brief understanding.

For example, I have a weak statistics background; for the things I don't know I look them up on wikipedia, various sites, etc. The goal is not necessarily to learn the material as you would for an exam, but to develop a broader understanding of what the material is and how it is relates to machine learning. When I read this material I probably retain only 5-15% of the information, but I read enough to let me move on. Never get stuck on one piece of information for too long. I've found if I get stuck, I can move on and the brain just kind of figures out how it fits into the puzzle.

With your background Andrew Ng's course on coursera https://www.coursera.org/learn/machine-learning should be suitable.

I watch these videos only once on 2x speed. My goal is not to retain the information but to index it. Much of what is useful will be learned by practice, by watching the videos on 2x it's like skimming a text. It allows you to index, that way you know where to look if you need greater depth in the future. For example, you don't have to memorize the cost function, but it's important to know why the cost function is constructed the way it is, and what it's use is.

I then supplement by reading this: http://neuralnetworksanddeeplearning.com/

and doing these problems http://www.cs.cmu.edu/~tom/10601_fall2012/hws.shtml

This is the most useful resource I've found tbh:
http://www.kdnuggets.com/

I have a weak programming background, so for learning python I've found this text useful for practice and learning the language: https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994?ie=UTF8&
Version=1&entries*=0

This text is very basic, useful in general if you don't have a compsci/compeng background, but doesn't have direct applications for data science. For a more data focus wrt python: https://www.coursera.org/specializations/python . You do not have to pay for any of these courses. Just search for the specific course and enroll, for example, https://www.coursera.org/learn/python-data

That's pretty much where I'm at.
I believe the most important thing is to train our brains to think as the machine would. It's important to utilize our intuition and natural parallel abilities of the brain, as ultimately these are the techniques we are attempting to replicate.

u/kzbigboss07 · 1 pointr/careeradvice

CPA turned data engineer/scientist checking in. Used to work in FP&A for a bank handling all their technical needs. Spent my entire career so far between business departments and IT departments.

As for #1, if you like where you're at then try to beef up the technical skills to the maximum you can in that environment. Take the time to master SQL by learning the advance uses (windowing functions, recursive queries) and tune some of your queries that take a while to run. As for Excel VBA, I really suggest you start learning a proper language like Python and use that instead. VBA was my first professional coding experience, but it kept breaking (new office versions, Mac users, windows updates, etc..). I now write Python and R regularly and I wish I started sooner. Start small with scripting then start dabbling in more object oriented programming. A good book to start with is Automate the Boring Stuff with Python: Practical Programming for Total Beginners https://www.amazon.com/dp/1593275994/ref=cm_sw_r_cp_api_0BTSybPKF1S0S

Mastering SQL and having scripting skills gets you closer to a technical role than a business role. At a minimum, it makes you worthy of an interview for more Business Analyst and Business Intelligence roles.

As for #2, I need to give you a little bit of a hard time. Just head to Indeed.com and search for 'finance SQL'. TONS of opportunity live at the intersection of finance and IT all over the world. Moving straight to a pure development role will be a challenge, but start scanning the jobs you find most attractive and figure out what your gaps are. Even if you don't plan to leave, use those job descriptions to talk to your leadership about your technical goals.

As for the CPA, IT'S A HUGE ASSET. Sure you may never sign off on an audit statement or be a tax preparer, but your CPA is proof you understand business. I'm now a Senior Technical Manager focused on financial intelligence in the cloud industry and regularly consult with Finance how to solve weird accounting problems. Once you slide over to the technical side, your CPA and your business experience give you a perspective you'll have never had if you started off as pure technical.

I'm actually headed to San Mateo tomorrow and spending the week there. PM me if you want to grab a coffee.

u/XMR1 · 2 pointsr/IWantToLearn

If you know a language that you want to learn, go ahead and look for tutorials online (there really isn't the perfect beginners guide).

If you don't know/care for any specific language, I'd recommend the book 7 languages in 7 weeks to get started.

That way you can learn a few different language paradigms and find what suits you best.

I highly recommand that you not only go over the book and do all the examples, but ask yourself after each language: "What cool (small) thing could I build myself with it?".

And then browse the web for some more tutorials on that language.

You won't know any of these languages very well at the end, but you'll have a general overview and can then dive into any that you like.

If you are interested, you can also PM me and I'd offer some help (mostly chat-based explaining and pointing to resources, etc.).
I currently have a lot of spare time and know C#/Java/Php, generall HTML development and am always happy to support someone willing to code (most people only care for the result, but I believe coding to be an art itself worth more than that ;) ).

tl;dr find a language you like, look for online tutorials or books and just start learning

edit: also check our subreddits like /r/coding and /r/programming.

u/discobanditt · 1 pointr/gis

In my opinion, the best place to start is to learn some Javascript. Chances are, any development framework you use to build your web apps will involve Javascript at some stage. And even if not, it's an excellent starting point!
Eloquent Javascript is a great book. Also, I highly recommend utilizing online classes from sources like Lynda. CodeAcademy is a good source for step-by-step tutorials.

After you get a grip on Javascript, I agree with the other posters that Web AppBuilder with customized widgets is a great platform for developing web apps. Download the developer edition and work with Javascript to create your own widgets. This is a good description on how to get started. The ArcGIS API for Javascrist is built on the Dojo library, so it's worthwhile to learn how to navigate Dojo as well. If you want to delve deeper, you can build an app from the ground up with the ArcGIS API for Javascript, rather than using the Web AppBuilder as the foundation for your maps.

If you don't have a developer license or you don't want to go the ArcGIS route, Leaflet is a pretty good, albeit simple, Javascript library for creating web maps. Their community is great, too, and they have quite a few plugins. There is also OpenLayers, and other similar libraries. You can use GeoJSON for your geometry files, and quite a few open source data bases our there (Like PostGIS) support the GeoJSON file format.

u/Braxaxe · 1 pointr/LearnJapanese

First of all, congratulations on getting Kana down! That's your first big step. As for learning grammar, I would strongly recommend the linked book series. This grammar dictionary is easy to read and gives you an easily format to reference back to grammar you may forget.

Grammar Dictionary: https://www.amazon.com/Dictionary-Basic-Japanese-Grammar/dp/4789004546/ref=sr_1_1?s=books&ie=UTF8&qid=1474638675&sr=1-1&keywords=dictionary+of+basic+japanese+grammar

With learning Kanji...I dare say that memorization by repetition is necessary here. I know that many people here advocate various flash card applications (anki, memrise, ect.) and depending on your study preferences those could work great! On the other hand, I personally learn by opening up a notebook and chugging away at writing and re-writing the characters. It's not fun, but it works!
Either way, a book I like for kanji learning is linked below.

Kanji: https://www.amazon.com/Essential-Kanji-Characters-Systematically-Reference/dp/0834802228/ref=sr_1_1?s=books&ie=UTF8&qid=1474639597&sr=1-1&keywords=essential+kanji

Now when it comes to reading material, you probably don't want to break out the nearest copy of 1Q84 by Murakami to test out your next skills. Instead you may find it easier to go for some children's books while you grow accustomed to the language. They rarely use difficult kanji, and it's always accompanied by furigana when they do. I suggest a short story called "Momotaro the Peach Boy" to start out. There are plenty more like it that you can find online too.

Momotaro: https://www.amazon.com/Adventure-Momotaro-Kodansha-Childrens-Bilingual/dp/1568365284/ref=sr_1_5?s=books&ie=UTF8&qid=1474639307&sr=1-5&keywords=momotaro+the+peach+boy

While I know it won't be easy learning to read a new language, I hope you keep at it. Who knows, maybe you'll even want to give speaking a good crack someday. Have fun and good luck!

u/lardlung · 1 pointr/Python

It's good to be versatile. :)

What kind of projects have you tried in the past? Or to put it another way, what's failed to capture your attention?

Although I recommend actually writing code more than I recommend hitting yet another book, John Zelle's textbook Python Programming: An Introduction to Computer Science is a pretty good book that may help you. That's an amazon link, but you can find it online elsewhere, as well. It might be worth your time to find a copy, although

The book steps through building some projects with a lot of good discussions about why certain code choices are made, but more importantly, it has exercises and questions at the end of each chapter. Some are easy to answer, and some take a little more thought.

There's also a pretty good chapter that talks just about the process of designing a project, which helped me learn to organize my thoughts when I'm tackling a new project.

I'd love to hear what you end up picking to get going again.

u/koeningyou666 · 73 pointsr/netsecstudents

In my opinion; every book in this bundle is a bag of shit.

Here's a list of reputable books, again in my opinion (All links are Non-Affiliate Links):

Web Hacking:

The Web Hackers Handbook (Link)

Infrastructure:

Network Security Assessment (Link)

Please Note: The examples in the book are dated (even though it's been updated to v3), but this book is the best for learning Infrastructure Testing Methodology.

General:

Hacking: The Art of Exploitation (Link)

Grey Hat Hacking (Link)

Linux:

Hacking Exposed: Linux (I don't have a link to a specific book as there are many editions / revisions for this book. Please read the reviews for the edition you want to purchase)

Metasploit:

I recommend the online course "Metaspliot Unleashed" (Link) as opposed to buying the book (Link).

Nmap:

The man pages. The book (Link) is a great reference and looks great on the bookshelf. The reality is, using Nmap is like baking a cake. There are too many variables involved in running the perfect portscan, every environment is different and as such will require tweaking to run efficiently.

Malware Analysis:

Practical Malware Analysis (Link)

The book is old, but the methodology is rock solid.

Programming / Scripting:

Python: Automate the Boring Stuff (Link)

Hope that helps.

u/lazyAgnostic · 1 pointr/santashelpers

For programming, what kind of programming is he into? Here are some cool programming books and things:

  • Automate the Boring Stuff with Python This book has a lot of beginner projects that are actually useful.

  • Arduino A little microprocessor that he can use to make cool projects. I'm a software engineer and I had fun playing aroung with this. Plus, you can use it for actual useful things (I'm planning on making an automatic plant waterer, but you can look online for all the awesome stuff people have made).

  • Raspberry Pi Similar to the arduino but it's a full computer. For more software-heavy projects than the arduino. I'd probably recommend starting with the arduino.

  • Great book about how code and computers actually work that's geared towards the "intelligent layperson" link.

  • If he's already programming and wants to create games I can recommend this one.. Not good for beginners though.

  • If you want to give him a well written tome about game programming here it is. Again, not really for beginners but really good for someone wanting to learn about game programming
u/TheRubyRedPirate · 2 pointsr/Random_Acts_Of_Amazon

I've always said that if I had a superpower, it would be to understand any spoken or written language. I took 3 years of Spanish in high school, but like most high school kids, I didn't pay a lot of attention and I barely remember anything. I have so many languages I want to learn. I know some American Sign Language that I learned as a kid. Mostly seasons, numbers, letters,months. But i never learned to make sentences. I'd love to learn German and Russian. I think they are both beautiful languages. My husband took etemology and some German in college so he teaches me what he remembers here and there.

A book series I love has frequent German that I'm always translating. I also love the show Grimm and it has a lot of German I'd love to learn, I'm going to add this book of easy learning for German

Hey Philipp, wie war denn der Urlaub?" "Gräßlich! Im Hotel hatte ich Zimmernummer hundert. Und vom Türschild ist die Eins abgefallen!"

I love that this video has the English and German lyrics!


What languages have you studied? What made you choose Russian?

u/[deleted] · 18 pointsr/darknetplan

What OS? Linux, of course. When TPB order everything locked down, you don't want to be caught using a Microsoft OS. -- What distribution? The easy path is Ubuntu, with the Cinnamon UI, or LinuxMint 13, when issued (May 2012).

What IDE? There's lots to choose from. My favorite is "geany".

https://en.wikipedia.org/wiki/Geany

For TCP/IP protocol tutorial. Recently updated by Wright:
Stevens, "TCP/IP Illustrated", 3-volume set.

http://www.amazon.com/TCP-IP-Illustrated-Volume-Set/dp/0201776316

On human interface guidelines relevant to programming:

https://en.wikipedia.org/wiki/Human_interface_guidelines

For GNOME 2, see:

http://library.gnome.org/devel/hig-book/stable/

To develop Linux applications:

You are right. You MUST know how to program in C. When others tell you that object oriented programming is the thing, know that you can do object oriented programming in C. Avoid interpreted languages (Python, Java, and others) as a first programming language. Interpreted languages teach bad habits and hid too much of what's going on from you such that debugging becomes difficult to impossible.

However, if all you intend is "casual programming", the Python will do, if you must. It's just not the best choice first a first language if your intent is to become a "professional programmer". I use Python myself; It works for what I need to do quick and dirty.

Definitive, but for experienced programmers:

http://www.amazon.com/C-Programming-Language-2nd-Edition/dp/0131103628/ref=sr_1_1?s=books&ie=UTF8&qid=1335197606&sr=1-1

As a tutorial for someone learning a first programming language and how to program from zero:

Perry, "Absolute Beginner's Guide to C", 2ed.
-- I have not read the book, but the ToC looks reasonable for a beginner.

http://www.amazon.com/Absolute-Beginners-Guide-2nd-Edition/dp/0672305100/ref=sr_1_6?s=books&ie=UTF8&qid=1335197606&sr=1-6

OK, you don't want a full CS curriculum, but some topics in discrete mathematics are mandatory. ... Ack! Having looked over the offerings at Amazon, I believe that Epp, "Discrete Mathematics with Applications" may be the best of the lot, but at $187, it is hard to recommend without knowing your intent and interest. The reason I suggest this title is that it looks focused on application to computer science topics. It covers a number of topics that are NOT covered in many of the other titles, enough so that should you use other texts you will have spent more than the $187 that this title includes. JMHO.

http://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0495391328/ref=sr_1_1?s=books&ie=UTF8&qid=1335199316&sr=1-1

See also: Sedgwick, "Algorithms" -- You'll probably need it sooner than later.

http://www.amazon.com/Algorithms-4th-Edition-Robert-Sedgewick/dp/032157351X/ref=sr_1_1?s=books&ie=UTF8&qid=1335200153&sr=1-1

Remember that Linux OS? You are going to need some programming tools, right? If you intend to write GUI applications based on the GTK+ toolkit, then install the package "glade" or "glade-gtk". Installing a glade package will suck in over 100 other packages essential to building a GTK based GUI application. Specifying glade to the package manager is just easier that finding and installing all the other necessary parts by hand.

If you are going to do command line based UI programs, then package "build-essentials" should be adequate.

There are some other things to read:

On how to organize, grow and maintain a Linux software development project: Fogel, "Producing Open Source Software"

http://producingoss.com/

You can read it online here, but buy the book too to help support Fogel. He's gotta eat too.

On the culture of writing Open Source Software:

Raymond, "The Cathedral and the Bazaar"

http://www.catb.org/~esr/writings/cathedral-bazaar/

Linux programming is not like Windows programming.
Read and study ESR's TAOP.

Raymond, "The Art of Unix Programming"

http://www.catb.org/~esr/writings/taoup/html/

You can read it online, free. However, buy a hardcopy too. Raymond has to eat too.

Now to get really technical. What interface do you write to?

Kerrick, "The Linux Programming Interface: A Linux and UNIX System Programming Handbook"

http://www.amazon.com/The-Linux-Programming-Interface-Handbook/dp/1593272200/ref=sr_1_1?s=books&ie=UTF8&qid=1335201257&sr=1-1#reader_1593272200

Beginning to focus on GNU style programming:

GNU Coding Standards

https://www.gnu.org/prep/standards/

GNU Coding Standards is more than how to and how much to indent a line or how to set braces. You will get into the topic of Make and Autotools. Make is a program to build complex softare and Autotools is about how to build a package for distribution, the package that any Unix flavor can use; it is not focused on any specific distribution. See also: "configure and make"

Enough! There's more, but I have too much time in this already for today.

[edit: typos]

u/srblan · 1 pointr/csharp

I'm 35, no degree, 2 young kids, little time to study. I had an interest in coding but have done nothing more than an intro to HTML/CSS and Javascript while in community college.

I got a job as a tester/DBA support. I expressed interest in learning to develop as we were short staffed (still are).

I started with Udemy.com, C# Beginner with Mosh. I liked this course but felt it was a bit disjointed. His lectures did not always cover the material used in his challenges, but I will go back into his other two courses eventually.
Next I watched the Bob Tabor videos others have mentioned. I liked these, they were a little more direct and showed more actual coding than the Mosh vids.
Third - I read the first 20 chapters of this book: https://www.amazon.com/C-Players-Guide-3rd/dp/0985580135/ref=sr_1_1?ie=UTF8&qid=1521128465&sr=8-1&keywords=C%23+Players+Guide (most of this would be a review, but I like seeing how other people teach the same material)
Now, I'm working through this book:
https://www.amazon.com/Head-First-Learners-Real-World-Programming/dp/1449343503/ref=sr_1_2?s=books&ie=UTF8&qid=1521128540&sr=1-2&keywords=Head+First+C%23.

After this book, i will move onto Pluralsight.

I am very much still a beginner, probably still a year or more away from supporting our devs at work. But the best advice I got was to code every day. You won't learn it if you don't do it. I don't know if any of this will help you get "job ready" super fast, but its the advice I was given and I just wanted to pass it along.

u/chhhyeahtone · 7 pointsr/learnprogramming

If you want to know what programming is like, try Stanford's CS101 course. It's very basic but gives you a taste of what you can learn. You can breeze through it in a week or two. Don't worry about memorizing the code, just focus on the concepts.

If you finish that and enjoyed it, you can try M.I.T's 6.00 1 course. It teaches you Python, one of the easier programming languages to start with. This course is longer than the first one and is an actual programming course. It recommends the book Introduction to Computation and Programming Using Python if you need it.

After that, I would say give Harvard's CS50 online course a go. This course teaches you the C language and is easier to complete if you did the first two courses. This course recommends the books: The C programming language book or C programming: an absolute beginners guide for a more beginner friendly (and budget friendly) option.

Good luck and have fun

u/LyndonArmitage · 1 pointr/java
  1. I use IntelliJ at work and home, not just for Java but for a lot of other things, it has the fastest and best intelligent auto complete I have seen in an IDE and supports a whole tonne of frameworks and programming languages, it's also got some kickass keyboard shortcuts and a nice dark skin.
    However all the main IDEs are good, those are Eclipse, Netbeans and IntelliJ (as far as I am aware). At university you will probably be learning with Eclipse, BlueJ (which I have never used, but is supposed to be educational) or maybe even notepad. If they give you a choice I'd use Eclipse to learn with since it is used by a lot of companies and open source projects.

  2. One thing to watch out for is String comparison using the == operator. The == operator in Java compares memory address and not content of the strings, a quick google search turns up this blog post with some details on Strings in Java. Basically you should use string1.equals(string2) when comparing strings in Java.

  3. Nab a book from your university library or buy one on Amazon/The Book Depository.
    I taught myself it following various tutorials online but the books teach you better practices than those most of the time and are more in depth. Java a Beginners Guide seems highly rated on Amazon and has been kept up to date. When I was at university I saw a few copies of Thinking in Java around but it's a tad out of date now, Head First Java might also be worth a look.
    The videos I used to learn Java were a combination of thenewboston videos (these don't encourage good practices but show a basic way of getting started) and some Java games programming related videos by thecodinguniverse.
    Once you have the basics of Java down, might I also suggest completing the challenges on /r/dailyprogrammer to help get you more comfortable with it.
u/SpotsOnTheCeiling · 3 pointsr/learnprogramming

Well, what language?

I actually JUST got back home about an hour ago from riding on my bike to the library (check out my reply to /u/zabzonk ) for one of if not THEE book that has helped me most when I was first interested in programming.

[Python Programming for the Absolute Beginner, 3rd Edition - by Michael Dawson] (http://www.amazon.com/Python-Programming-Absolute-Beginner-3rd/dp/1435455002/ref=sr_1_1?s=books&ie=UTF8&qid=1405791222&sr=1-1&keywords=python+programming+for+the+absolute+beginner)

The book itself has a "fun" writing style, at least enough to make me engaged in the reading, the examples are easy to understand, and it helped me grasp basic concepts very quickly. Also, Python 3 itself if a really solid pick for a first language IMO.

Really though, check out tons of books on one language, even if you don't read them all, you can sample a bit of each to see which one you want to read. And if you don't understand something, try reading it in one of the other books to see if you understand THAT example. It might also help you a little bit to pick up a book on a DIFFERENT language, in my case I REALLY started grasping concepts when reading [Beginning Programming with Java For Dummies - by Barry Burd] (http://www.amazon.com/Beginning-Programming-Java-Dummies-Burd/dp/0470371749/ref=sr_1_4?s=books&ie=UTF8&qid=1405791600&sr=1-4&keywords=Java+for+dummies) because his writing style was really entertaining and had me entirely focused and learning the whole time.

In the end, I still can't code much worth 2 cents, but I've touched on C++, Python, Java, and C# now and really understand the concepts of programming without having programmed much of anything. I'll tell you right now the reading is important, but PRACTICE. MAKES. PERFECT.

Read, and code every example in the book and try to put your own twist on it. Once you understand a little, try for a simple idea you have in mind, maybe a Dice Roller with X amount of dice and X amount of sides? Maybe tic-tac-toe? Whatever sounds like a fun little project, try to make it as you learn. And any GUI (graphical user interface) programming is best saved for last, learn how to code before you learn how to make pretty menus.

u/drummondaw · 1 pointr/java

I'm in the same boat as you. I'm currently working through a book called Java: A Beginner's Guide Sixth Edition. I chose this book because it uses the latest version of Java, which I think is important in some respects. Older books may have the same information initially (loops, datatypes, etc. rarely change), but as you delve deeper there are certain aspects of the language that improves over time and makes your life easier as a developer.

Choosing the right author is essential because they're basically your professor throughout the learning process. Someone suggested www.thenewboston.com and the vast majority of developers on this site laugh at even the mention of this resource. In other words, do your homework and ensure you're learning from a respected individual.

After having a basic understanding of a programming language your next step should be to choose a personal project slightly beyond the skill level you currently have. Doing research, solving problems/bugs and finishing something enhances your learning like you wouldn't believe. I've been reading programming books for many years and the times when I'd simply read a book in its entirety and then try to build something always showed me that my retention wasn't very strong. When I took the time to pause and use what I had learned throughout segments of the book I learned a lot more and my retention was extremely high.

Using what I've said above, you can pick pretty much any programming language and apply this learning style. I have tried both online classes and books and have found books to be the best method for myself. With online classes I've found myself spending time watching way too many videos than actually writing code.

u/myRobotArms · 1 pointr/learnpython

Also, I can't recommend this book enough. http://www.amazon.com/Python-Programming-Absolute-Beginner-Edition/dp/1435455002 It's fun and challenging. At the end of some pretty lengthy chapters that explain certain concepts really well, he presents challenges that you can attempt, just give you more practice and get you thinking like a programmer. The book takes you from great explanations on the basics to developing GUIs and even simple video games. It's a great place to get started. Also there is Udemy.com, who is wrapping up their 65% off promotion. There are a good number of free tutorials and paid tutorials as well. Good luck with Python!

u/rawrrang · 1 pointr/learnprogramming

I wouldn't say polymorphism is a higher comp sci concept, in fact it's more of just a programming concept. This textbook Introduction to Java Programming which you may or may not find in some kind of book torrent site, has great examples with source code you can download.

In the preface of the book, it tells you the chapters combine to form a few different parts.

Part 1 are fundamentals like loops method and arrays... you probably know all these.

Part 2 of the book goes over all the OOP concepts like Polymorphism/Inheritance/Abstractions/Interfaces which seems like is what you are asking for.

Part 3 goes over GUI so you can skip all those chapters if you don't care for GUIs.

Part 4 is about data structures and algorithm, which is not really a substitute for a pure data structure or algorithm book, but gives a nice reference with understandable examples.

Part 5 is "advance java programming" which gives you a chapter on something specific like mutlithreading and parallel programming/ networking / working with database / etc.

I from time to time go back to the examples of this book for reference on stuff. The examples a written in relatively good style and are simple. They often have a simple example then gets build on to be a more elaborate one. Downloadable code samples is also great so you can play with it yourself.

If you want to learn more comp sci concepts like data struct and algorithms, I'd say pick up a different book dedicated to that... but at least this book I mentioned covers it a little bit.

u/karlfreeman · 22 pointsr/ruby

Some great suggestions here around complimentary languages. Let me chime in on the tools. Depending on where you want your career to go deploying Ruby without Heroku wouldn't hurt at all.

  • When to use Varnish / Nginx and why
  • Why Capistrano is a popular way to deploy code
  • How to demonize and monitor ruby processes
  • Why people use Chef
  • Knowing the key difference between how Unicorn scales and Puma
  • Understanding Git, Git merging strategies and having an awarness of Git Flow style branching models
  • etc...

    I've made no assumption on what you already know so please don't feel like you need to know all of this but as Rubyist these are things I look for in candidate's that I hire :).

    PS: I've not included Databases in all of this which I think is obvious to say is important when fleshing out a CV.

    PPS: Two books I would recommend highly (can easily be read on holiday in the sun)

  • Seven Languages in Seven Weeks
  • Seven Databases in Seven Weeks

    Both of these books are fairly light hearted, give you a grounded understanding of the core differences in languages and databases, assume your a programmer already and IMO are very interesting reads for someone that is keen to look at languages from different angles. Prolog == mind blown

    Good Luck
u/Radheid · 1 pointr/compsci

This is a great book, if you have some (basic) programming background and want to learn more about the programming languages' "relations" to different kinds of applications, systems and computers: Programming Languages: Principles and Paradigms (Undergraduate Topics in Computer Science).

If you already know some programming, but never heard/read/learned about the Functional Paradigm (specially with Lambda Calculus): An Introduction to Functional Programming Through Lambda Calculus (Dover Books on Mathematics).

If you've got some experience with Imperative Programming, and would like to learn a really powerful and versatile Functional Programming language (Haskell), this book is considered as the best beginner's guide: Learn You a Haskell For Great Good!: A Beginner's Guide. I believe it's digital (online) version is available for free at their official website http://www.learnyouahaskell.com.

u/samort7 · 3 pointsr/learnprogramming

I saw someone posting Head First Java and you might want to take a look at this thread and this thread in regards to that book. Here's my opinion from those threads:

Headfirst Java was published in 2005. It's 13 years old. If you're looking to learn Java, there are plenty of excellent resources that also cover the latest features of the language:

u/CopperHook · 1 pointr/gamedev

Be prepared for a long road then. I recommend getting a solid footing on coding before attempting larger projects like your dream game.

I started years back with this book. Python taught me general programming.

When you do the examples in that book, expand on them. Add things to them that they didn't mention. At this point, it should be something you enjoy. If it isn't, coding may be a hard journey, and another aspect of game development may be a better fit (art, etc.).

If all is well after that, try picking up Java. This language will help you when you begin working on Android (and will open up tons of job opportunities). Alternatively, start picking up some game engine development, like using C# in Unity.

This is all just my opinion, and is the general direction I took when starting out. Good luck!

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/dig-up-stupid · 2 pointsr/learnprogramming

Neat interview question, I'd either love it or hate it depending on what they expected to get out of it. I do think it's a bit problematic because how programming languages are different usually has (among other things) straightforward technical answers, but asking why one is more popular or successful than another is usually better answered from a historical/political perspective than a technical one (often, anyway). Part of your job will be to narrow down what the interviewer is actually asking.

To learn more about different programming languages themselves, I've seen this book recommended highly before (on this sub) and have it on my reading list, though I haven't got to it myself yet. If you're into MOOC's then I can say that I surveyed this course and enjoyed it for the price (free).

For the "why thing x is popular" side I would recommend just googling around (or waiting on reddit) to familiarize yourself with the popular flame wars. Most everything you will read is straight up wrong (just wait around for people to talk about the performance of Java for the best example). It may sound terrible, but you don't need real answers, for an interview you just need something to talk about. The history of CS is still a tiny field, and I'd eat my shorts if an interviewer was actually well informed on the subject. Here is a classic essay on why C beat out Lisp historically, it's arguments tend to get recycled a lot for other topics as well (Java, OOP, etc) despite it basically being an opinion piece.

u/pyvlad · 2 pointsr/AskReddit

Quite simply, get a book on programming instead of on a specific language. They all focus on algorithm design, and teach the specifics of the language they're using only to the point that it helps the main lesson. I'd suggest a book that uses Python, because, as a higher-level language, you don't have to deal with a lot of the small details of C/C++/something else. It's pretty easy to learn them later on, if you want to, but that's a good starting point.

Note: I used this, so on the one hand, I may be biased, or on the other hand, this may genuinely be a good textbook.

Good luck!

u/enteleform · 5 pointsr/Python

Definitely possible. Parsing, filtering, & translating data is actually pretty common and not too hard to get into. The difficulty of your particular project depends on how well-structured/accessible the data you'll be working with is.
 
Check out:

u/Zveir · 1 pointr/UMD

Since you're starting a Java programming course in two weeks, I'd recommend this one.

https://www.amazon.com/gp/product/0071809252/ref=oh_aui_detailpage_o03_s00?ie=UTF8&psc=1

It's one of the books I own. Admittedly this is not the book I would normally give to a complete novice in programming, but I think it's the best for the situation. It's a pretty fat book and full of knowledge, but it assumes the reader has some sort of technical background. It doesn't do much to help you visualize it in other ways. However it gets straight to the point, is fairly clear, and is ordered well. If you can understand the material in the first 3 chapters before the start of your class I think you will be very well off.

u/Canthros · 3 pointsr/programming

I'm mainly looking for things they could do to shore up their resumé when comparing it to somebody coming out of a 4-year CS program someplace. They need to have projects to talk about, and github's a good place to put that. Making contributions to open source projects seems like a good way to build experience doing the sort of maintenance work that keeps business systems churning, and a good way to get some practical experience cutting code that they won't have from a 3-month bootcamp. It's also a way to get experience using source control, dealing with code reviews, etc. I totally agree that they should be building their own projects, but github also seems like a good way to present that part of their portfolio.

They should keep up to date, specifically, on developments in tools and technologies they're trying to get hired to use. There's no reason to expend effort tracking, say, Haskell, unless you really want to work with it, professionally, but, if your skillset is all webdev, it might behoove you to have a clue about, say, ES2017 and how much of it's actually supported and where.

There's no reason for a junior dev to be mastering languages or tools they're not actually going to be using, but a bootcamper is going to have pretty narrow exposure to programming paradigms outside their existing skillset. Rolling through something like Seven Languages in Seven Weeks as a project you spend an hour or two on each week would help broaden their foundation, and maybe expose them to some other ideas and programming paradigms. Likewise, a survey of, say, algorithms and data structures, if only to the point of being able to explain the difference between a queue and a stack, or an array and a linked list. This isn't because these are immediately useful skills, but because they're things I wouldn't expect a bootcamper to have picked up in bootcamp and they are things I'd expect a CS grad to know (if not necessarily know well), and the bootcamper is competing with the CS grad for the job.

For comparison, somebody in r/csharp asked what people actually expect from junior developers a while back. This was my answer to that question, which was bounded in terms of the language and technology stack.

u/Reptilian_Overlords · 12 pointsr/talesfromtechsupport

I'd go read books about the A+ cert (you don't need to certify but it's great material).

For other technical things I recommend a lot of books that are amazing:

u/GlitteringSkeleton · 4 pointsr/javahelp

I'd start with this article. Finding newer versions of the books mentioned here is going to get you going on the right path. Here's a few I've picked out that I've personally read over the years.

Java: A Beginners Guide - Doesn't really get much better than this as far as an introduction into Java. Clean examples, pretty easy to follow. Would be a great place to start

Effective Java - This has historically been an excellent reference for Java. It's not entirely beginner friendly, but if you have at least a working knowledge of Java it's an excellent book to have around. Note: The link is for the 3rd edition which is coming out soon, I assume it will be as good as the previous editions, but in any case the information from the previous editions is still worthwhile even if there are newer features in Java 7/8/9 which is covered by the 3rd edition

Java Concurrency in Practice - As you become more advanced this book can help guide you along the ways of concurrent operations in Java and pitfalls/issues you'll run into (and how to avoid them)

u/slayerming2 · 1 pointr/learnpython

Okay yeah sorry, I'll try to do more research on the reddit next time. A less knowledagable friend suggested I try my hands on with VBA and, I asked my more knowledgable friends about that and php. He said that VBA is kind of outdated and PHP, although easier, is really specific for what you want, and Python encompass both VBA and PHP better. Do you agree with that?

Also is this the book you were talking about? https://www.amazon.com/Learn-Python-Hard-Way-Introduction/dp/0321884914

My friend said he said he heard good things about this book https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994?ref_=nav_signin&

What do you recommend?

u/Voidsheep · 11 pointsr/javascript

Use ESLint with recommended settings, so your code editor will yell at you for a lot of mistakes you'd make. They provide plugins for most code editors and IDEs, configuration is a matter of having .eslintrc-file in the directory your code is in. Some rules that you might want to enable that aren't in the recommended set are "eqeqeq" and "no-unexpected-multiline", this allows you to avoid many problems related to features like Automatic Semicolon Insertion (ASI) and type coercion.

Later on when you've got some more advanced stuff like a build process with transpiler going (or you don't have to worry about how your code runs in older browsers), you'll want to enable ES6 rules like "no-var" and "prefer-const" to also get rid of some potential hoisting issues and accidental reassignments. But that's likely a story for another time that can be ignored for now.

The ESLint's constant nagging about everything can be annoying at first, but after you've seen and fixed the same red squiggly lines a hundred times, you no longer get them and avoid the problems by default even if you don't have linters somewhere.

Some people will tell you to read "JavaScript: The Good Parts" book, but that's outdated and you'll avoid many pitfalls by default with the recommended ESLint settings. If you want books, check out things like You Don't Know JS (free) and Eloquent JavaScript.

Also, the next time you are about to loop through an array, take another look through the array iteration methods at MDN.

You'll probably see a method that is made exactly for what you are doing and allows you to describe what you want, instead of doing bunch of step-by-step instructions that don't describe your intention and are just noise among the logic.

Edit: Oh and get familiar with chrome developer tools and debugging. Writing code is like 10% of the job at best, figuring out why problems happen is like 90%. Spending a few hours getting familiar with the debug tools beyond console.log is one of the best things you can do with your time and will save you so much trouble in the future you can't even imagine it.

If you aren't a new programmer, but just new to JavaScript itself, it's also definitely worth it to read Mostly Adequate Guide to Functional Programming (free) and learn how to really take advantage of JavaScript being a functional language.

Edit2: Tried to make the post a bit more straightforward.

u/aphrodite-walking · 1 pointr/Random_Acts_Of_Amazon

I want to learn German! For one, because my little cousins live in Germany and I would love to be able to speak to them in German rather than French or English. I will also be studying in either Switzerland or Austria (I haven't been assigned yet) for two weeks on a clinical assignment to attend some medical conferences. This will be in the next few years so It's important to me to at least have some grasp on the language.


Item :D


I like Schubert


Lehrer zum Schüler: ''Für diese Frechheit schreibst Du hundert Mal, 'Ich bin ein fauler Kerl' und lässt es anschließend von Deinem Vater unterschreiben!''

I use Duolingo which is pretty helpful but they don't really explain grammar. You kind of just have to pick it up as you go. LiveMocha is pretty cool too because you can have people rate how well you speak.

Have you been to /r/languagelearning ? TONS of awesome links to subbredits and resources.

u/madmaxx · 2 pointsr/AskComputerScience

While you only need to learn the languages you're going to use, it can help to be familiar with how to read (and solve problems) languages of various lineages, structures, and dialects (e.g., C-like functional, imperative, etc.).

There are books (like this one) on the topic, and many CompSci programs include a 3rd or 4th year language survey course. I found that this course (and much later that book) helped me think about solutions more clearly, especially after having solved one problem across several languages.

Also, if you're at all interested in language design (or processing), having more mental models of programming languages can help immensely.

On the other hand, when I'm hiring I don't really care what language(s) you know, as long as it's clear you've done well with the ones you use (and how you talk about your opinions around them). If it's clear you actually know a number of languages, you'll get some bonus points.

u/The_Binding_Of_Data · 1 pointr/csharp

I found The C# Player's Guide (3rd Ed.) to be pretty solid at teaching the basics of the C# language. I particularly liked how they diagrammed the various data types.

Head First C# (3rd Ed.) was also good, but it's pretty out of date at this point. If you can use Visual Studio 2015 or earlier, you should still be able to follow along without too much trouble. After that, the templates they use for doing UI are no longer available, so you'd have to do some extra work there.

That said, Head First C# includes a lot more general Computer Science information the Player's Guide, and includes UI design and implementation.

I think one issue with hard copy books is that C# and .NET are evolving really really fast currently, which makes it hard to keep up to date.

As far as projects go, I totally know how difficult it can be to think of something when you're specifically trying to.

Several projects I've made ended up being due to some need. For example, I have a project idea I really need to get started at some point for a recipe book for Breath of the Wild. I want something light weight that I can use to record the recipes I find in game, as well as being able to store additional useful information (such as places where ingredients drop or can be purchased, purchase prices, etc).

Another project idea that I've played with a bit here and there is a basic character stat generator for an RPG. This is something that can be super simple, but can also be expanded a great deal into a complex program.

u/f0nd004u · 1 pointr/Python

Check the side bar for the online books; LPTHW is a good place to start learning the basics. CodeAcademy is cool because it's interactive, but I didn't really like the Python course and I didn't feel like I learned more than some basic syntax. The ruby one is better, but not by much.

I've been using this textbook to teach myself: http://www.amazon.com/Python-Programming-Absolute-Beginner-Edition/dp/1435455002

It was recommended to me by a friend who took CSCI 101 at PSU with it. He does it project-based; every chapter you complete a working game program, and he steps you through all of it with example programs. Very easy to follow, and the programs are fun to write. I've tried learning coding from textbooks in the past without much success, and I really feel like I'm getting somewhere with this one. Plus, it's python3, which is probably what we beginners should be working with.

u/LinuxStreetFighter · 1 pointr/SoftwareEngineering

Udemy has a great course on Full Stack Web Development and Java. PluralSight also has phenomenal paths on C# and Java.

Check out GitHub and do a search for some projects you might be interested in. Fantasy text based games, checklists, to-do lists, mobile games, etc. See how other people write code. Eventually you can offer to participate in the projects and contribute or fork your own.

Books! Books are great resources, especially if you know where to look. Some can get dated, very quickly, but others are timeless.

Core Java Volume I

Python Programming: An Introduction to Computer Science

Eloquent JavaScript

Head First Ruby


Regarding Python Programming: Let me tell you everyone's most hated research methodology. An anecdote! I hated, I absolutely
HATED* Python.

"Python is beautiful!" said the pompous coder. "Python is the world!" said the obnoxious tool. I thought it was ugly, jagged, white space loving garbage.

Turned out, it was the method I was learning Python. That book changed my life.

Anyway, back to the other books.

Core Java Volume I and II are INSANE in the amount of information they give. You will learn more about Java than you probably care to know, but when you finish both volumes you'll be able to do anything with the language.

Eloquent JavaScript is one of the best JavaScript books I've read, and I've not read them all, but I've read more than a few. But who am I? :D

I'd get the Ruby book after you've learned some Python or get it before you dig into Python. Could get a little confusing. But after one, you'll essentially know the other.

Some of the replies have suggested to ask your company to cross train or see what stack their working in and learn that. I disagree for a couple of reasons (which should be taken with a heaping spoon of salt):

  1. It's always good to see what else is out there. The best way to get a raise is to get a job at another company!

  2. The stack the company is using could be out of date or not in demand. We don't live in the age of working for the same company for 25 years. In fact, with software engineering, it's good to experience different tech every few years. It wouldn't be a bad idea to ask to shadow or maybe mentor, and depending on the time invested you might want to give them at least a year.

    This is another example of personal experience, I am far from an expert.


    Check out some podcasts too!

    Coding Blocks .NET

    Code Newbie

    Programming Throwdown

    Coder Radio (see below)


    Sometimes that guy can be super jaded and negative, just an fyi... They do cover good subjects, though.



    Also, not a podcast, but https://scaleyourcode.com/ has some good insight on software development as a career.

    Good luck! There is a slew of information out there.

u/_that_clown_ · 1 pointr/india

Python is easy to learn and you can do actually do it in 3-4 weeks if you give some time. If you can spend some money I would suggest searching "Python Bootcamp" on Udemy(It's the best video resource I have found, and Also go to inventwithpython.com and read Automate the boring stuff with python) . You can find it in 700rs If it says otherwise wait a day or two.

If you want something to read I would suggest Think python or Automate the boring stuff with python. , (You don't have to pay for the book, If you want you can read it for free on inventwithpython.com)

For youtube I would recommend sentdex's Channel He has fundamental videos and videos on many type of libraries. I completed his Machine Learning Videos and they are amazing.

Good luck and god speed.

u/kaeldis · 1 pointr/IWantToLearn

To best dead honest, I do not know. I only know middle eastern languages and they are very different from Latin based languages. I would try to do all types of sentences at the same time; five of one type, four of another, three... While I was learning however, I took what I wanted to say and put it in a basic translation, to the best of my ability. Then, I had my friends tell me how to fix it and what i did wrong. I learned almost entirely through trial and error. When you try to learn these things with baby steps, and you fully understand a step before you move on, your speaking, writing, etc. will be natural and automatic the more you use it.

Once you have found a native speaker, who is willing to help you on a daily basis, I would ask him what he would think would be best to start with in each step. Or, you could buy a book such as this. It may seems stupid, but a book designed for children would also be helpful.

All I can say is good luck on learning. I promise you if you go slow and steady you will learn.

u/throwawayIWGWPC · 1 pointr/rational

> then at least answer this. how does the marker know its host soul is the Controller? it has to identify the soul somehow and said soul is also changing and growing.

The marker wouldn't need to know the host soul is the controller. For example, say I have a shirt and I attach a tag to it that has "Controller" written on it, I can do a lot of things, drastic things, to change that shirt---paint it, sew new things on it, cut it down to be a rag---and the tag will still be attached as long as I didn't alter the part of the cloth where the tag is attached.

That's a physical metaphor, but in programming, there are a few different ways to create data structures that work in the same way. To avoid going into too much detail, here are some terms you can Google if you want to know more: "Python" and then one of the following---lists, dictionaries, objects. The first two are pretty straightforward to understand, whereas objects are a complex topic.

If you're interested in programming by the way, Automate the Boring Stuff with Python: Practical Programming for Total Beginners is freaking great. Python is a powerful language that's easy and fun to learn.

u/enelsk · 4 pointsr/learnprogramming

Hi there,

If your primary interest is in blogging, I would recommend an existing platform like Ghost to get you up and running quickly. However, it sounds like you're more interested in web programming, with blogs being an interesting application.

These days, a lot of web applications are written with scripting languages, primarily Python, Ruby, or Javascript[1]. Each of these have many web frameworks to help you write your server application, but the big ones are:

  • Ruby: Ruby on Rails
  • Python: Django
  • Javascript: Express.js

    If you're already familiar with one of those languages, obviously you should heavily consider exploring its frameworks. Alternatively, you should research the languages and their frameworks on a high level and get an understanding of their core differentiating features before choosing one.

    Personally, I'm a lover of JS and node since that allows you to write your entire stack in Javascript, but there are those in this subreddit who call me a fanboy :)

    Regarding your client, any behavioral logic is going to be done in Javascript, the markdown will be in HTML, and your layout and style will be in CSS [2] - no way around that, so you better get familiar.

    Excellent intro to modern HTML/CSS

    Excellent intro to Javascript

    [1] Javascript executes in a unique server environment via Node.js, utilizing Chrome's v8 JS engine.

    [2] Of course there are languages like Coffeescript and Compass that compile to JS and CSS, this is probably beyond the spirit of the question.
u/kctong529 · 1 pointr/languagelearning

If what you want to achieve is A1 and nothing beyond, you best bet would be getting one of the many course books:

u/BICHO_CHICKEN_ · -3 pointsr/learnprogramming

Unless you're gifted with coding and algorithms, don't expect to be able to land an interview and then land a job. Interviews will test you on algorithms, and coding.


If I were you, I'd just focus on learning Java syntax very well, then move on to OOP principles, and then move on to MVC principles.


Assuming you already have the required math background, you need to open this book, and starting going through the important parts in each chapter, and committing it to memory. You will be tested on things from this book during job interviews. You are expected to code them as well. Amazon specifically ask about Linear Programming whereas Google might ask about other stuff.


Not many make it without a CS degree. I have made a few bucks selling game apps, but there is always better things to do out there.

Algorithms book, considered to the holy bible in CS

https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844




Start using Java, and commit things to memory.


You will need at least 9 months of prep time.


Use this book to learn java https://www.amazon.com/Introduction-Programming-Structures-Comprehensive-Version/dp/0134670949/ref=sr_1_3?keywords=liang+java&qid=1564003011&s=books&sr=1-3






Use this other book as well:


http://www.deitel.com/Books/Java/JavaHowtoProgram11e/tabid/3683/Default.aspx




I assume you already know how to study and memorize and take good notes.





To get started on making game apps, visit this, and download it, it may help to fund you https://www.scirra.com/

u/bubblemaster30 · 3 pointsr/java

I used this book,
http://www.amazon.com/Introduction-Programming-Comprehensive-Version-Edition/dp/0132936526/ref=zg_bs_3608_53

There are probably other good books, but I really liked this one. It has a broad range of topics and examples.

Also, I didn't start programming until college. Starting at 14 is awesome! You're going to be amazing by the time you graduate!

u/Deslan · 2 pointsr/learnpython

I have two books which I think are excellent, and both do what you describe.

One is Rapid GUI programming with Python and Qt which teaches you GUI programming through examples. It's a really good book, the only thing it lacks is that it's not Python3.

The other one is Python programming for the absolute beginner which lets you create games, one at a time, to teach you Python programming by example. This book also has a continuation called More Python programming for the absolute beginner which continues where the first one left off. I don't have the second book, but they both seem to be rather good and well liked by their readers. Like the Qt book I mentioned, these two are also Python2, which is a bit boring but they will at least get you started.

u/ashmoran · 1 pointr/Bitcoin

I read this like you assume it will take longer to learn two or three languages than one, but this isn't necessarily true. It will take you longer to learn two languages to a professional level than one, but if you're starting from fresh then trying multiple languages has a lot of advantages. Every programming language has a different philosophy and emphasises different features, making some things harder or easier. If you only ever program in Java, there are things that are easy in say Ruby or Clojure it would never occur to you to try, because the language makes it so much harder. But if you only program in these two and not say C, you won't appreciate how the languages manage memory for you. The list is almost endless, but the more languages you're exposed to the more you deepen your understanding (and learn new tricks) by triangulation.

Realistically it takes a few years to get to a professional standard in programming, don't be afraid of spending a few months to get a good start. The book Seven Languages in Seven Weeks may interest you: http://www.amazon.com/gp/aw/d/193435659X – also there are Bitcoin implementations in most main languages, so once you can read a language you can use these to compare how they and how they're used in practice.

u/motts · 3 pointsr/civilengineering

Python is pretty powerful and has a shallow learning curve for being able to automate a lot of simple things and do some helpful data analysis and visualization. I recommend the book automate the boring stuff with python. Teaches you things like working with Excel, scraping data from different sources, working with regular expressions to pull data from text, etc.

I also feel like there is always demand for spreadsheet wizs. If you want to learn VBA in excel you can record macros while you manually work, view the code and learn from there.

u/cheeseboythrowaway · 1 pointr/learnprogramming

I tried to learn Python like 3 or 4 times when I was in IT and it didn't ever click in my head until I read this book. For some reason, the way the author explains things just made sense to me.

https://www.amazon.com/Python-Programming-Absolute-Beginner-3rd/dp/1435455002/ref=sr_1_1?ie=UTF8&qid=1522440046&sr=8-1&keywords=python+for+the+absolute+beginner

Each chapter is a project, and it's focused on simple games. I like it especially for that reason; I think that working on projects is the best way to learn programming.

Once you get the basics, the hard part is coming up with projects to work on, but there's a lot of resources on Reddit and other places to get you started and working on open source projects is a great way to go as well. Doesn't really matter what the project is, just that you're interested in it.

Don't forget to look into Linux stuff too; my Linux skills reaaaaallly helped me when I was first trying to get programming jobs.

u/dmazzoni · 1 pointr/learnprogramming

OK, you could start with a book like this:

http://www.amazon.com/Java-Beginners-Guide-Herbert-Schildt/dp/0071809252/

I'd highly encourage you to actually do the exercises, though. Programming is all about doing, not reading. You should spend roughly 10 hours programming for every 1 hour of reading.

Even if you only make it through one chapter, it will get you in the right mindset.

Alternatively, if you haven't already learned HTML and you want to learn something different, but super useful, try learning HTML (and CSS) to make a simple website. Note that HTML is not programming, but it does get you used to the idea of writing syntax for a computer to parse, and trying to figure out what went wrong when it doesn't do what you intended. Plus, HTML is used all over the place so it's incredibly useful to know. If you know a little bit, learn more - try some more advanced CSS.

u/wisam · 1 pointr/learnprogramming

Java, A Beginner's Guide. is a well-paced book that's not huge (about 700 pages).

Java, The Complete Reference. by the same author of the above book is, as the name suggests, a huge comprehensive reference (about 1500 pages). I wouldn't use it to learn the basics, but would use it later as a reference.

Introduction to Java Programming, Comprehensive Version. is a slow-paced huge book (more than 1500 pages) that will benefit a beginner a lot.

Now if you are in a hurry and you need to go through the basic s quickly and possibly miss some details, I would recommend Think Java. It's a small (about 300 pages) free fast-paced book that will get you hooked quickly.

u/bifurcation_ · 3 pointsr/learnjavascript

I'm currently going through this Kindle book, A Smarter Way to Learn JavaScript, and its associated website, in parallel with Eloquent JavaScript.

I personally feel like I understand better if I read a book with coding exercises, than through sites like Codecademy. Both books have their own coding environments on their sites, to be used with the books. Eloquent JS is much more dense in terms of reading material, so she may or may not choose to read it at the same time or at all.

The "Smarter" book is short, divided into easily digestible chunks of brief chapters, and has quizzes online to test your understanding of the material and to drill the syntax. It doesn't just tell you about a bunch of syntax then say, "Ok, solve this coding challenge; it's easy!" And then, you're left wondering how to start. So far I like this approach because it is a very gentle introduction to the language and its syntax. I think it's a great primer for wrapping one's head around the language, before getting into other heavier materials. Many books that are labeled for beginners make a lot of assumptions about your knowledge going in. This one really is beginner friendly. Other amazon reviewers seem to agree. It's not free, but it's inexpensive.

About me, for reference: I'm a girl (in case that matters). :D I've dabbled a little bit in trying to learn Python and Ruby, but I can't say that I can program at all really, just enough to be familiar with basic concepts like variables, conditional statements, and loops. I'd say I'm intermediate with HTML/CSS.

u/DrAmbulanceDriver · 5 pointsr/learnprogramming

I'm assuming you just want to learn the basic information about how computers work and the principles behind programming them, right?

In that case, I'd recommend Code by Charles Petzold

Are you looking to actually learn how to program and write code in a specific language? If so, then I'd recommend Automate the Boring Stuff with Python by Al Sweigart. It covers the basic principles of writing functions and how computer logic works, and you'll actually be able to apply it to some practical uses. And since its Python, it'll run on a lot of different platforms. If you like it, you may want to get into working with the Raspberry Pi. Javascript is another good language to start with, but as a book, I really like this one.

If you already know a bit about programming, and just want a general reference book, then Computer Science Illuminated by Dale and Lewis is pretty good.

u/BBorNot · 3 pointsr/SeattleWA

This is the best advice here. A coding bootcamp may give you a credential that's worth the price, but the real capability is from your own work/studying/interest. And that stuff can be done for almost free. I really liked Automate the Boring Stuff -- a Python book that provides some powerful tools very quickly.

The bootcamp will be 100x more valuable if you attend already able to code.

u/delirial · 1 pointr/learnprogramming

Based on my previous experience with Head First books, I'd recommend Head First Python. Out of the three reviews on the main page on Amazon, the bad review is complaining about it not being "deep enough" for an experienced programmer. I have to say, the Head first series is kind of fun. (Geeky jokes, cool exercises, etc).

Python Programming for the Absolute Beginner, 3rd Edition seems to have decent reviews too.

Dive Into Python if I remember correctly assumes a little bit of experience from the reader. But it's a very good book.

I know that you are looking for something structured to pass on... but don't forget that the best thing you can "teach" is how to look things up.

Also, OCW (MIT) has a class on iTunes/YouTube on programming concepts with python. Definitely worth the time investment.

u/Rogue_Philosophy · 1 pointr/learnprogramming

There are some good suggestions here, especially DonnyTheWalrus's reply.

However, regarding books I'd personally suggest the book "Head-First Javascript Programming"(make sure you get the latest the one that says "programming" in the title, as that is the more modern one.) or "A Smarter Way". In my opinion, these books are really good at taking a newbie into the intermediate level of Javascript by taking advantage of some of the best things we've learned about learning in general.

u/BestMomo · 1 pointr/gamedev

This is the book that helped me a lot when I was studying C# years ago:

Amazon link

It's fun and easy, and there's a few simplistic games that it teaches you to code here and there.

As others mentioned, good programming concepts are independent of language. Given your post wording, I think what you need to learn now is good object-oriented programming, so you need to learn the concepts of polymorphism, inheritance, overload, abstraction, etc. It's those concepts that make code expandable, independent and easily manageable. This book might just help you grasp those concepts and improve your overall C# coding.

u/terivia · 3 pointsr/Teachers

I have my degree in Computer Science, so my path is probably not ideal for you at this point. However, that does not mean that you can't do it!


My honest recommendation at this point is to just jump in and get started. I've been recommending this book as a start for friends and fellow teachers https://www.amazon.com/Python-Crash-Course-Hands-Project-Based/dp/1593276036.


Alternatively, if python isn't your thing, grab a textbook for c or java. These are the ones I used for my degree and still keep as desk references.

https://www.amazon.com/Starting-Out-Control-Structures-Objects/dp/0133769399

https://www.amazon.com/Introduction-Java-Programming-Comprehensive-Version/dp/0132936526


Once you have gotten started and are fairly comfortable doing the exercises in books, I suggest these websites for additional problems to explore:

https://codingbat.com/

https://www.hackerrank.com/

https://leetcode.com/

https://uva.onlinejudge.org/

https://open.kattis.com/

https://codeforces.com/


If you are going to go for it, make sure to join some communities. Familiarize yourself with stackoverflow.com (ask jeeves for programming, with some proper wizards to answer questions). /r/programming is pretty good too.


Finally, never stop to sit on somebody else's problems and projects. Pick something that you want to make but have no idea how to make it. Then do it. And don't stop. See the project all the way through even though your code will be HIDEOUS and unattainable by the end. There is a lot to be learned from finishing a project.


The formal logic stuff is the root of computation, but if you are using your cell phone without understanding it, then it follows that you should be able to write programs without understanding it. There is a depth of programming where it becomes important, but I would say that 90% or more of developers don't really need to understand the underlying processes by which processors process.


Good luck!

u/CaptainIncredible · 1 pointr/ADHD_Programmers

There are so many books out there and I've hated most of them. A lot of them read like a 2000 page tome about corporate tax law - all the text is the same, its just paragraph after paragraph of babbling. Sure its accurate, but who wants to read that?

Not me.

BUT there are some books that don't suck - the Head First books. I swear they were built for ADHD minds.

https://www.amazon.com/Head-First-Learners-Real-World-Programming/dp/1449343503/

BUT... Books still kind of suck. I wouldn't recommend them unless you want to learn general concepts.

And my particular example uses XAML which is an XML layout language that only Microsoft uses... Which is good if you are writing Windows desktop apps, but who does that anymore? Most of it has moved to web or mobile.

But I do recommend:

  1. Figuring out a project of something you DO want to do. Let's use an example of "I want to build a web based To Do list application. I want to use C#."

  2. Find a tutorial online that is relevant. Like this: https://mva.microsoft.com/en-us/training-courses/asp-net-core-beginner-18153

  3. Work through the exercises to get a basic foundation for ASP.NET Core, C#, web applications, etc.

  4. THEN think about the ToDo app you want to build. Find a tutorial that works well for it like... Oh... I dunno... Maybe this one: https://medium.com/@ThisisZone/to-do-write-to-do-app-with-asp-net-core-c02bc3ca9fa1

    Its helpful if the tutorial has all the source code on GitHub like this: https://medium.com/@ThisisZone/to-do-write-to-do-app-with-asp-net-core-c02bc3ca9fa1
u/cheifing · 2 pointsr/learnpython

As someone who is also learning python, I would recommend: http://www.learnpythonthehardway.org/

Since you already know a bit about python, you'll go through the beginning chapters very fast, but the later ones get interesting. The author also checks the comments very often, answering any questions you may have.

If that seems to advanced for you, or if it gets too hard, I would recommend this book. This book is great if python is your first language, and goes through everything in detail. It also teaches you some of the general programming lingo.

u/JustinitsuJ · 2 pointsr/cs50

I think CS50 gives you a good solid foundation for C. When I started the course, I used it in conjunction with a book mentioned in the syllabus (not sure if it's still mentioned in there or not, but it was when I started), "C Programming Absolute Beginners Guide" (linked below). It is easy enough to work through and it gives you a different angle to some of the similar concepts that you are learning in CS50.

You aren't going to be an expert in C when you finish either, but hopefully you will understand some important basic concepts.

Also, learning programming is hard, especially at the start, so don't beat yourself up if you don't understand stuff along the way. You aren't alone, there are plenty of resources out there to help (like this sub).

This is the book

u/ruffyen · 2 pointsr/sysadmin

Automate the Boring stuff with Python is a pretty good book that covers some basics of things and gets the creative juices flowing. They also have one for Powershell.

​

The other book that I found really interesting was Practical Packet Analysis. It really opened my eyes to the power of wireshark.

​

And enough can't be said for Phoenix Project. Really interesting read that explains it in a real world like scenario instead of just a White Paper of how to do stuff. Above all else...avoid being a Brent.

u/just_mr_c · 1 pointr/AskNetsec

I know you said classes so this may not fit what you're looking for, but I'd recommend the book Automate the Boring Stuff with Python. There's a site with the content free here. I used this book to help me first learn Python and come up with some little sub 20 line scripts to help me automate work tasks.

Also check out /r/learnpython, they're a cool community.

u/ironykarl · 0 pointsr/learnprogramming

You're gonna learn Java so that you can learn Python? I'd honestly just go with Python.

This book is a great start, IMO.

There's a version for Python 2 and one for Python 3. Spend a few minutes thinking about (reading about) whether you want to go with Python 2 or 3, pull the trigger (buy a book), and work through it. You'll come out ready to tackle intermediate-level stuff. I've worked through the bulk of the Python 2 book, but I program in Python 3.

As for Python 2 v. 3: You can't really go wrong with either, at your level. There aren't a ton of differences:

  • If you go with Python 2, today, you'll have access to a bunch of libraries that can help you do a bunch of cool stuff. You'll have to learn Python 3 later, but it'll take you all of a few minutes (and then some haggling with your interpreter when you forget Python 3 idioms).

  • If you go with Python 3, you'll be learning the future of the language; there's already a fair bit of library support, and with any luck by the time you need the other libraries (i.e. by the time you've acquired enough skill as a programmer to be able to use them), support'll be there. That might be overly optimistic (as far as the porting time-table is concerned),

    but I don't think the decision is so major that it's worth agonizing over. Again, just make a choice, learn some shit, and if you have to go back and redo some stuff later, it's not the end of the world.
u/gbliquid · 1 pointr/learnprogramming

When I was learning python in school they had us use this book.

Python Programming: An Introduction to Computer Science, 3rd Ed. https://www.amazon.com/dp/1590282752/ref=cm_sw_r_cp_api_i_6JnyDb7DPST9V

I found it to be easy to learn from. The language was easy to understand, it covered a lot of the core topics to get you started in python, and I’m pretty sure each chapter had a bunch of programming exercises at the end to practice what you learned. Would definitely recommend this book if you’re looking to get started in python.

u/core_dumpd · 3 pointsr/datascience

Jose Portilla on Udemy has some good python based courses (and also frequents this subreddit). There's regularly sales or some sort of coupon code available to get any of the courses for $10-$15, so it's very reasonable.

For books:

https://www.amazon.com/Python-Data-Analysis-Wrangling-IPython/dp/1491957662/ref=asap_bc?ie=UTF8 ... it's not out yet, but due any day. You can also get preview access on sites like Safari Online (which would also have all the books below).

https://www.amazon.com/Data-Science-Scratch-Principles-Python/dp/149190142X/ref=sr_1_1

For general python:

https://www.amazon.com/Python-Crash-Course-Hands-Project-Based/dp/1593276036/ref=sr_1_1

https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994/ref=sr_1_1

No Starch Press, OReilly, APress and Manning generally have pretty good quality publications. I'd usually skip anything from Packt, unless it's specifically received good reviews.

u/IcanCwhatUsay · 6 pointsr/learnpython

Have this book, love this book. I highly recommend Automate the boring stuff. This was a much better kickstarter into learning the program language for as it has real world applications you can do. I tend to drift back and forth between the two books all the time.

Also, good to note, the Author is a redditor ( /u/ehmatthes ) AND posted the book here for free but I bought two copies just because I loved it so much. (Kindle and paperback, I'm not crazy!) If these books came in hardcover, or pocket sized I'd probably own four copies then (NUDGE NUDGE WINK WINK HINT! HINT!)

Good post to read and print

https://www.reddit.com/r/learnpython/comments/4y06nq/beginners_python_cheat_sheets_updated/


u/nikofeyn · 2 pointsr/csharp

take a look at head first java and head first c#. i learned object-oriented programming from head first java, but was implementing object-oriented code in another language, which is one example of how good the book explains the general concepts. it is far better than head first c# in terms of explaining object-oriented concepts and is likely better than most books, but head first c# gets you a lot of hands on experience with visual studio and c#.

reading head first java first and then moving to head first c# wouldn't be a bad approach, in my opinion.

u/cuntilingus · 3 pointsr/programming

Looks cool. Awesome that people go through the work of putting up free books.

I'm currently reading Python Programming: An Introduction to Computer Science. It's a bit slow / too intro, but I wanted to make sure I learned CS fundamentals, since it's been like 10 years since I took CS 161 at uni. :-)

u/auchi · 1 pointr/bestof

That describes the problem I'm having very well.


I've been thinking of switching over to the How to Think Like a Computer Scientist, it's good to get some confirmation that it's a better place to start.


I didn't know about Al Sweigart. Is this one of the books you recommend? "Automate the Boring Stuff with Python: Practical Programming for Total Beginners"


Also, one of the reasons why I started codeacademy was because I wasn't sure where to start with the downloading python, launcher, terminal... that whole mumble jumble onto my computer (MacBook Air). Will the two recommended sources you mentioned go over how to do that?


Sorry for all the questions. Thanks for your help.

u/Java_Junior · 1 pointr/learnjava

I think you should not avoid a course or a book because you think it's boring. Boring does not mean the content isn't important to learn. I moved from Python to Java; all the Python books were fun and exciting, and all of the Java books are boring and dry. But you just have to power through it.


Java: A Beginner's Guide by Schildt is a very good book, but it is boring, and some of the examples are wack. I haven't found a perfect book yet.


This guy is a pretty good teacher and his lessons are short. Some of his examples are a little weird too but overall I like him.


Also remember that HTML and CSS are not programming languages. Java and JS are, and therefore they are a lot more complicated. Being in a classroom setting might be extremely beneficial.

u/parrotbear · 1 pointr/IWantToLearn

Its very old now, but I remember trying to read a few programming books, and didn't start to understand the basic fundamentals until I read this book which seemed a lot easier than the rest: http://www.amazon.com/Absolute-Beginners-Guide-2nd-Edition/dp/0672305100

Also, I've heard these Head First books are really good and easy to follow. I think they have a Head First C.

u/rico_suave · 2 pointsr/Python

There might be some code examples or open sourced software online that sort of does what you want. However, I think this is really where your own creativity and imagination comes into play.
Part of the fun in programming for me is exactly to find an elegant or new and simple solution for a real world problem.
P.s. this is a nice book to get you started programming an application using python.

u/scripteaze · 1 pointr/learnjavascript

Great book, I'm sure many will agree is "A Smarter Way To Learn JS"

  • Possibly unrelated but Udumy is on sale 9.99 for everything until i believe the 29th, in case anyone is interested. Just a heads up. Yes they are always having a sale, but just in case you were waiting for the 9.99 one.
u/vegantealover · 1 pointr/cs50

Tried the Google one and couldn't stop cringing. Felt like I was in kindergarten watching the videos...

You need to know basic java programming to learn Android, but that should be easy if you already know some language.

Also didn't like that book, personally. It doesn't explain things really well. Currently reading The busy coders guide for Android programming and it seems really good.

I learned Java reading Java: A beginner's guide sixth edition and its a good beginner book, it's also serious unlike the "heads first java" which was full of lame jokes and I don't personally like that.

Should point out I'm a beginner myself so take this with a grain of salt.

Edit: Formating

u/davidddavidson · 6 pointsr/learnprogramming

There is no "best" language for beginning learning but Python is definitely one of the "better" ones you can use in starting out. It has consistent syntax, nicely format, and low overhead needed. Ruby is has a similar style to Python and is also a good language for beginners to learn. Other people can argue that Smalltalk is a good language for beginners and then you have people all the way on the FP side of the spectrum arguing for Lisp/Scheme as a teaching language.

As for Python books I would recommend Python Programming: An Introduction to Computer Science

If you want to try Ruby I recommend The Well-Grounded Rubyist

u/squire_louseII · 1 pointr/Career

I program in Python, and used http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1887902996
to get going. CodeAcademy is also a good resource. I should say that I am not a software developer or anything similar, and my current position is not primarily about programming (though I'm trying to push it that way). I work as a 'Project Scientist' and use programming for data analysis, a little web-dev, and making various useful tools (programs). I would not have gotten the job though, despite it not being a 'Programmer' position, without programming. I guess I'm just trying to say that it is a super useful (and for some enjoyable) skill that can open doors for you.

u/hutsboR · 2 pointsr/learnprogramming

I was going to recommend reading a book but it seems you've already got a couple. When I started programming in Java about a year ago, I used this book.


I'm obviously still learning myself and have a long way to go but if you're interested I'd be willing to do my best to answer any specific questions you have. Just send me a message with a question or a way to contact you! (IRC, Skype, whatever.)

u/thatslifeson · 6 pointsr/learnpython

That's because the explanations aren't very good. You aren't alone in that regard. As one other suggested, there is Think Python.

I would also suggest these:

u/lostinthewhirlwind · 1 pointr/javascript

Just to add onto the awesome list already given, A smarter way to learn JavaScript is also great 👍🏾

u/Always_posts_serious · 2 pointsr/learnprogramming

I got this book which did a good job of explaining everything. To be honest, memory allocation in C is not very hard, but any form of data structures and pointers can get confusing fast, especially if coming from Python. The way C works is also a bit different from Java since it is not object oriented.

I also recommend watching CS50X lecture videos over data structures in C. David Malan does a good job of breaking it down, drawing it out on a board, and giving examples.

u/bearses · 1 pointr/webdev

start with javascript. if nothing else, it will strengthen your knowledge of the dom, and make you 10x more confident in your coding abilities.

the best js book i've encountered so far is this one:

http://www.amazon.com/Eloquent-JavaScript-Modern-Introduction-Programming/dp/1593272820

u/F2a · 3 pointsr/learnprogramming

Start with C. People say not to but I don't understand why. You'll definitely learn the concepts. Go here for some learning: http://cslibrary.stanford.edu/ . If you need more of a fresh start buy a textbook on amazon and start working through it. This one has good reviews although I've never read it: http://www.amazon.com/Absolute-Beginners-Guide-C-2nd/dp/0672305100/ref=sr_1_1?s=books&ie=UTF8&qid=1312264160&sr=1-1 . It should have exercises that you do along the way and that is how you learn. If you get stuck or want some more programs to make send me a message.

u/35andDying · 3 pointsr/Frontend

Do not worry about frameworks. You need to understand Vanilla JavaScript first. Once you have a good understanding how everything works THEN you can worry about which library is best for each project. Get the basics down at Code Academy then try out Practical JavaScript

A more in-depth approach would be learn javascript properly

A quick lookup/learn guide that I found helpful is A Smarter Way to Learn JavaScript

u/TheDarkIn1978 · 2 pointsr/javascript

If you're new to programming, I will suggest starting off with this prior to studying JavaScript specific books:

The Absolute Beginner's Guide to C


It's a perfect for people just starting out as it teaches the basics while being super easy to follow. Even though it's a book about C programming from 1994, most of today's common programming languages, including ECMAScript/JavaScript, are based on C, so the lessons in the book are still entirely valid.

u/Yamogi · 1 pointr/AskReddit

Well I've applied for a sysadmin job and they've mentioned that they use Python a lot, so at the moment I'm just trying to get a general overview of all the basics of the language :) I've got this book and I'm just going through the exercises at the end of each chapter. I've done basic programming and scripting before so it's been pretty easy to pick up so far.

u/archivedsofa · 2 pointsr/webdev

> Currently, I am trying to self-teach myself through affordable sources such as Udemy, FreeCodecamp, etc.

You can learn on your own, and even get a job without a CS degree, but for the love of god don't learn programming from small tutorials.

Tutorials tell you how to do a little thing, and the biggest problem about programming is not that, it's understanding how to think in programming terms. If you get the basics right, the language, framework, etc, don't matter.

A better approach would be to attend some introductory course to programming (the language doesn't matter). I'm sure there must be something cheap in your city.

This is a nice book to get you started. It uses Python, but like I said the language doesn't matter.

https://www.amazon.com/Head-First-Programming-learners-programming/dp/0596802374

u/mstoiber · 2 pointsr/web_design

Sorry, ran out of time. Here's the rest of my answer:

If you are more of an engineer and not that interested in design, but in Front-End Development, start with Bulletproof Web Design, following up with Transcending CSS.

For JavaScript, read You Don't Know JS and Eloquent Javascript. (The second edition of Eloquent is going to be released on 17th of november, if you can't wait until then, there's a first edition aswell)

A very important design book I forgot aswell: The Design of Everyday Things.

Good luck on your way to mastering Web Design!

u/boloney048 · 1 pointr/learnpython

Thank you for your help. One more question: Did you learn from some books or your Python training is basen only on UofM course? I got this book because it is published in Poland and seems to be pretty good for beginners.

u/artemshitov · 7 pointsr/haskell

An Introduction to Functional Programming Through Lambda Calculus by Greg Michaelson is a great intro book about both lambda calculus and functional programming that may be easier to digest: http://www.amazon.com/Introduction-Functional-Programming-Calculus-Mathematics/dp/0486478831. Also, it seems, available for free as a PDF: https://www.cs.rochester.edu/~brown/173/readings/LCBook.pdf

u/Little_I · 1 pointr/learnprogramming

Seems like both C and C++ are really worth to learn!
Thanks all for the feedback. Although I would like to get some book and website recommendations, if possible? I already got http://www.amazon.com/Absolute-Beginners-Guide-2nd-Edition/dp/0672305100

and C++ Primer, as zabzonk recommended in first reply.

u/commandlineluser · 1 pointr/learnpython

So there are several things going on here.

First up is amazon checks the User-Agent header sent by your http client.

››› r = requests.get('https://www.amazon.com/gp/product/1593275994/')
››› r.status_code
503

If you look at the actual html response it contains stuff like:

<p class="a-last">Sorry, we just need to make sure you\'re not a robot.

It's some sort of "captcha" because they know you're using requests.

To avoid this issue - you can change the default User-Agent to "look like a real web browser"

››› r = requests.get('https://www.amazon.com/gp/product/1593275994/', headers={'User-Agent': 'Mozilla/5.0'})
››› r.status_code
200

We can do some basic checks to see if offer-price and buyNewSection are contained in the response.

››› 'offer-price' in r.text
True
››› 'id="buyNewSection"' in r.text
True

So let's try beautifulsoup

››› soup = BeautifulSoup(r.text, 'html.parser')
››› soup.select('#buyNewSection')
[]

?!?!!?!?

The default html.parser that comes with Python doesn't always work "correctly" - it doesn't always handle "broken" HTML

If you put the amazon link through the W3C validator https://validator.w3.org/ you'll see it has tons of "violations" - i'm not sure which one is responsible for breaking html.parser - but it does.

The 2 other common parsers to use are html5lib or lxml - you'll have to install those if you don't already have them.

››› soup = BeautifulSoup(r.text, 'html5lib')
››› soup.select('.offer-price')
[<span class="a-size-medium a-color-price offer-price a-text-normal">$21.00</span>]
››› soup.select_one('.offer-price')
<span class="a-size-medium a-color-price offer-price a-text-normal">$21.00</span>
››› soup.select_one('.offer-price').get_text()
'$21.00'

.select_one() can be used if you only want the first match.

u/MuhBack · 1 pointr/learnprogramming

I took a free online Python class. Then my wife went to a Web Development boot camp and is learning Jave Script. I decided to switch to JS because she's a great resource. But now there is a free online class in Python I want to take and I bought this book because I think I can use it at work.

Anyway I feel like all this jumping back and forth isn't efficient. Do you think its a bad idea to learn both languages at the same time? Or should I focus one?

u/leapy_ · 2 pointsr/learnjava

Well, it's one year since I started my Java programmer career and I think you should start with basic and then decide what you want to do in future (there is lots of path to take).This worked for me:

  1. Get fammiliar with concepts in this book Java: A Beginner's Guide, Sixth Edition. There are basic which u will need everywhere and for me a form was really easy to follow.
  2. Try to create some basic game in console. For example I did some basic "Fallout style" adventure. Important is to try coding yourself and not copy/paste and try to finnish a project.
  3. Choose a path you wanna take. Do you want desctop app, android app or you want to work in a enterprise. Find a technologie which suit your purpose and focus on it. Don't try to learn everything, because then u will know nothing properly.
  4. Try to do something like DVD rental or anything where you will have to implement CRUD operations, use REST API and get your hands dirty with some MVC concepts.
u/lrenaud · 2 pointsr/japanese

The Tofugu guide is a really good place to start for new learners. The rules established are broadly applicable, and will quickly let you pick up the order with minimal cross-referencing the further you get in your studies.

Beyond that choose a reference you like for when you need to look it up (I'm partial to The Essential Kanji for a book or Jisho.org for electronic forms), but generally don't fuss over stroke order. Avoid trying to treat it as a distinct topic, simply practice it when you learn vocab/kanji and know that when your starting you'll probably be looking things up quite frequently. A few hundred kanji in you're guesses will start to become pretty good, and beyond that you'll probably stop thinking about it entirely.

u/volandkit · 1 pointr/cscareerquestions

Read some easy beginner's book like Head First C# to get initial grasp of a language and after you finished with it read C# in Depth. If you really want to understand what is happening pick up CLR via C#.
Also always follow Code complete religiously and you will be better than most.

u/andy_panzer · 6 pointsr/programming

I found the book An Introduction to Functional Programming Through Lambda Calculus (Greg Michaelson, '88) a great resource. The first few sections give a nice, relatively gentle overview of the Lambda Calculus.

There is (oddly) also a well-formatted kindle version: https://www.amazon.com/Introduction-Functional-Programming-Calculus-Mathematics/dp/0486478831

u/Lerke · 2 pointsr/learnprogramming

I began with C# with a book called Head First C#. I've found that it's a fantastic book for beginners. Good luck!

u/illums · 2 pointsr/learnpython

Similar situation here. I have been studying for 4 months now on most free time (avg: 15 hr/wk). 3 days ago I started codecombat.com and have made it half way though that game. It is all starting to come full circle and beginning to really grasp the concepts. It is previous study, and code combat that has brought me to my current level of understanding of python.

Books I have read:

Code: The hidden language of computer hardware and software:

https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/073560505X/

​

Automate the Boring Stuff with Python: Practical Programming for Total Beginners:

https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994

​

Android App::

SoloLearn:Python:

https://play.google.com/store/apps/details?id=com.sololearn.python&hl=en_US

​

Youtube:

Python programming in one video:

https://www.youtube.com/watch?v=N4mEzFDjqtA

I have probably watch this 25 times in the last 4 months. Can about recite the whole thing now. haha

​

Game:

CodeCombat

codecombat.com

​

Online Class:

https://www.edx.org/learn/python

​

I have used all of these to different degrees of completion. I think if I had it all over to do again I would go in this order.

  • Code: the hidden language of computer hardware and software
  • Code Combat
  • Solo learn android app
  • Automate the Boring Stuff
  • EDX learn python class
  • and the special sauce of mixing in the the 45 minute video from youtube when possible.

    ​

    I am going to try check.io out after I finish Code Combat.

    ​

    I am not an expert by any means and still have so much to learn. I can feel myself improving, I have no intentions of becoming a full time software developer in the future. I want to learn how to program because I consider it a useful skill. After seeing the amount of time I have put into Rocket League over the past 4 years, I decided to do something more useful with my free time which is limited anyhow, because of work and family. And who knows what the future holds, maybe one day I will be able to make a dollar with my programming skill.
u/MulticastX4 · 2 pointsr/C_Programming

Absolute Beginner's Guide to C: http://www.amazon.com/dp/0672305100/

It's old, but it will definitely get you started. Of course the other recommendations are good too, but this might be worth a look.

u/Khrimz000 · 3 pointsr/learnpython

The easiest and simplest book I can think of is this one:

Automate the Boring Stuff With Python - Linked is an older version of the book:

https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994/ref=sr_1_3?crid=242Z71KMH05DO&keywords=automate+the+boring+stuff+with+python&qid=1572488779&sprefix=automate+the+boring+s%2Caps%2C212&sr=8-3

​

https://automatetheboringstuff.com/ This is a free version, online, however, of the book (old version i believe)

​

https://www.udemy.com/course/automate/ The video course goes almost hand in hand with the book and you can post questions if you get stuck. (Theres also here you can ask questions)

​

https://www.youtube.com/watch?v=1F_OgqRuSdI This is a sample of the video class on Chapter 1. He also has other videos also on his youtube channel. This is so you can sample what he has put together and see it for yourself.

u/cajun_super_coder · 1 pointr/learnprogramming

Very good writeup on events.

Edit: OP, as far as resources, I've always been a fan of the Step by Step books. The Head First books are also good as well as Murach's books.

u/FireIre · 6 pointsr/java

My college uses Introduction to Java, Comprehensive Edition. We'll be using it for 4 full semesters, and I think there will still be a chapter or two we don't cover. It has 34 Chapters in the book then 16 online chapters that covers a lot of topics covering Java EE, JSP, etc. It starts at the beginner level and goes from there.

However, despite its size it still doesn't go too in depth in many topics. For example, I'll be taking Java concurrency class next semester. We'll be starting with the concurrency chapter in the Intro to Java book and then we'll be moving to Concurrency in Practice by Brian Goetz.

This os only the second of two Java books I have exposure to, so I can't really rate it against any others, but it seems pretty good overall, though slightly vague on a few topics.

u/PlatinumGlasses · 0 pointsr/learnprogramming

This is wonderful, thank you. There are some lines that I haven't learned yet and so I'll make sure to research on them. I'm currently using this book as a teaching guide, do you have any other suggestions for books I can use?

u/starryeyedsky · 2 pointsr/dogecoin

Someone already suggested codeacademy, another one to check out is https://www.udemy.com/java-tutorial/.

Note: If you are looking for a teaching tool for people who have never coded before, always check to see if one of the first programs (if not the first) it has you code is a "Hello World" program (or equivalent). It is a simple program that just prints "Hello World" on the screen that is the first program most people learn to code. If the guide is starting with something more complex than "Hello World" it may not be for absolute beginners. Just something to look out for.

If you are OK paying for a book, a good book in the beginners section would be Java: A beginner's Guide from Oracle. Start with the two free sources mentioned first as the book jumps into more advance topics more quickly.

u/TheStudyOf_Wumbo · 1 pointr/UofT

It sadly has been like 12 years since I started programming so my knowledge of where to start is rusty. The best thing I'd recommend is to go on Amazon and look for a python beginner book with high ratings.

I'm guessing if you want to start generically you can try:
http://www.amazon.com/Python-Programming-Absolute-Beginner-Edition/dp/1435455002

If you find any of the following areas interesting:

Pattern matching with regular expressions
Reading and writing files
Organizing files
Debugging
Web scraping
Working with Excel spreadsheets
Working with PDF and word documents
Working with CSV files and JSON data
Keeping time, scheduling, tasks, and launching programs
Sending email and text messages
Manipulating images
Controlling the keyboard and mouse with GUI automation

Then this may be interesting for you:
http://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994/ref=pd_cp_14_1?ie=UTF8&refRID=0PKBV1D3FY5M1JEMZM3P

There are many introductory books out there, and I have not read the above personally but to date I have not been let down by books with a high rating and > 100 reviews.

ALSO it probably is worth checking out CSC108 lectures.

u/ITdoug · 1 pointr/cs50

Reddit. Although most of the posts here don't garner much attention, and sometimes things are posted which violate the Honor Code, so you have to be careful what you post/ask.

I'm not sure if this is the right book or not, but there's no shortage of C++ books out there. They do help, as I find this course is more "provide a couple small examples of a few things, and here is a very difficult question based on that info" than anything.

This book should bridge the gap and provide background info on code and practise stuff.

Also, codecademy.com is an amazing site to help you learn coding.

u/cjsimp02 · 1 pointr/learnprogramming

I recommend starting with some free resources, which I did at first. However, this book gave me a ton of knowledge on the fundamentals. The author uses Python to teach how programming works and the thinking/problem solving that you need when programming. It’s very interactive and he builds on the same problems throughout the book. He also does a great job at explaining loops and how they work, which can be confusing to someone new at programming. He will have you writing programs (very simple ones) right off the bat.

u/PatrickMorris · 2 pointsr/dotnet

The Head First series is really good, I learned C# using this book. It is focused on GUI programming though, if you are looking for web stuff then you would probably be better with something else.

Head First C#

u/winston_orwell_smith · 21 pointsr/embedded

If you want to start learning C from scratch then I suggest getting Greg Perry's "C Programming Absolute Beginner's Guide". Once you've mastered the basics of the C programming language, research "bitwise operations & bit manipulation in C". I have a free tutorial entry on that topic on my blog if you want to check it out. But you'll find many other similar resources on the web as well. Then have a look at Carmine Novello's Mastering STM32, and/or Mazidi's STM32 Arm Programming for Embedded Systems. Both books deal with STM32 microcontrollers and are very affordable.

Good luck!

u/Stem3576 · 2 pointsr/learnprogramming

I have found that the head first books to be the easiest to read while not having access to a computer. It has challenges where you write the code by hand inside the book and a couple other cool features.

u/Wild_Space · 3 pointsr/CFA

If you know R, then Python should be no problem. Learning Python helped me learn Java, and now R just seems like another step. I think my Python resources are out of date now, since I was learning Python 2. Learn Python the Hard Way used to be free, now he's charging for it. Coding Bat is cool for practicing. Here's some MIT readings I used too, but again, theyre for Python 2 so theyre going to be out of date. I actually just picked up Automate the Boring Stuff but havent used enough of it to recommend it yet, but it definitely looks interesting.

edit: Here this post of mine from a while back has a lot more Python resources that may or may not be useful anymore:

https://www.reddit.com/r/CFA/comments/6h5566/python_resources/

u/cliffffs · 2 pointsr/languagelearning

I used this book a while ago and really liked it.

This one also looks like it would be good.

u/CptTritium · 4 pointsr/sysadmin

Thanks for linking this, I hadn't seen it yet. As a Windows admin looking to get into Linux, this seems interesting.

Also, for your automation, I'd recommend Automate the Boring Stuff with Python, if you haven't read it already. It can also be found for free here: Automate the Boring Stuff.

I'll add another plug for The Practice of System and Network Information, even if you have a good feel for the philosophical part of the job.

u/combovercool · 2 pointsr/csharp

This is how I learned C#. I had taken a semester of C++ in college when I read this. It doesn't talk down to you, and it isn't dry. You could probably skip the first few chapters since you have a lot of C++ experience.

Enjoy C#. It's great, unless you are putting down the cash for Visual Studio, but I would highly recommend using it.


u/stupidedgyname · 1 pointr/learnprogramming

http://www.amazon.com/Introduction-Programming-Comprehensive-Version-Edition/dp/0132936526
for java, if you finish this book you'll be REALLY well off. Java is easier to start learning, but if you understand either you'll just need to learn the syntax of the other one.They're pretty similliar (both are based on c).

u/synopser · 1 pointr/LearnJapanese

Good question. There are a number of resources available. Essential Kanji was the one I started out with many years ago. It's a decent start for most people.

Once I got an Android phone, I grabbed the essential Aedict which is a pretty straightforward Jap->Eng Eng->Jap dictionary with kanji lookup, radical lookup, example sentences, etc. It is based on the WWWJDIC Collection. Since I always have my phone with me, this is my day-to-day translator. You can select a kanji/word and it will give you anywhere from 10 to 100 sentences using it. Includes grammar, too.

u/BRAF-V600E · 2 pointsr/bioinformatics

For Linux: The Linux Command Line: A Complete Introduction

For Python: Automate the Boring Stuff with Python: Practical Programming for Total Beginners

For R: The Book of R: A First Course in Programming and Statistics

These are all from No Starch Press, and I really like how they all function as complete introductions to their subjects. I've tried a number of programming books, but these have remained my go-to books for recommendations due to how well they build up basic principals for each concept or language. That said, I feel as though The Book of R is the weakest of the three, and maybe look into other recommendations for R if you get more replies.

EDIT:

Just realized that you asked for courses, not sources, my bad. Either way, I do encourage you to consider the above as alternatives to learning these concepts from online courses, as I've found them to be just as good if not better than some online courses I've seen.

u/Cpist · 4 pointsr/java

The best way I would suggest is buying a starters Java book online. I'm taking my AP Computer Science class as well and my teacher is also pretty difficult. He goes quick so I definitely recommend trying this. Also, try Khan Academy, PracticeIT, and CodingBat.

Ninja Edit: Grammar.

u/Tetravus · 1 pointr/learnprogramming

I'm a big fan of the headfirst books.

http://www.amazon.com/Head-First-C-Jennifer-Greene/dp/1449343503/ref=sr_1_1?ie=UTF8&qid=1422302647&sr=8-1&keywords=headfirst+C%23

It will help you get a good understanding on C#, and then you can try and make unity scripts.

u/user9848385732 · 1 pointr/learnprogramming

For a complete beginner I'd recommend C Programming Absolute Beginner's Guide

If you wanna learn C and do cool projects, plus learn a lot of other cool stuff too you can't go wrong with CS50

u/darthirule · 2 pointsr/learnprogramming

What are you currently using to learn?

I recommend the headfirst series.

http://www.amazon.com/Head-First-C-Jennifer-Greene/dp/1449343503

And here is a blog post with a good outline for learning C# that was posted here on reddit before. I don't remember who the original OP was though.
http://www.nicoschuele.com/posts/teach-yourself-web-development-from-scratch-with-ruby-python-or-c

u/Militaria · 1 pointr/learnprogramming

Thanks! I do like it. I'm just starting my pre-reqs I need before entering the graduate certificate CS&S program at U of W. So for now it's math, and then intro to programming classes. Meanwhile, I've started playing with Python using the Head First Programming book.

u/121531 · 2 pointsr/linguistics

I liked this book: https://www.amazon.com/Introduction-Functional-Programming-Calculus-Mathematics/dp/0486478831

Despite its programming language focus I think it has what you want: clear explanations and lots of exercises with solutions.

u/cakerunner · 2 pointsr/learnjavascript

Just a head's up: EloquentJS will go over your head really fast really soon if you've no introduction to programming to begin with. I struggled with it and am still not nearly halfway through. Instead I've focused on other tutorials like ASmarterWayToLearnJS to help me understand the fundamentals better before diving into EloquentJS. As others have suggested, try some of the online tutorials first so you don't get overwhelmed.

u/ziptofaf · 2 pointsr/learnprogramming

Ah! You have few options available then:

Helsinki's university MOOC:

https://moocfi.github.io/courses/2013/programming-part-1/

And two popular and often recommended books, you should be able to find them at your local university bookstore easily (even if you live outside US, at least Horstmann book is available in multiple languages):

https://www.amazon.com/Introduction-Programming-Structures-Comprehensive-Version/dp/0134670949

https://www.amazon.com/dp/0134177304

u/babbagack · 2 pointsr/learnprogramming

try Mark Myer's book A Smarter Way to Learn JavaScript

https://www.amazon.com/Smarter-Way-Learn-JavaScript-technology-ebook/dp/B00H1W9I6C

loved it, not painful at all. done 2 of his books, great for getting feet wet, not an expert or autonomous but lots of exposure.

u/michael0x2a · 3 pointsr/learnprogramming

You could try Learn Seven Languages in Seven Weeks. It attempts to teach 7 radically different languages/paradigms at the same time -- Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. It sounds like he already knows Scala, and probably won't find Ruby too interesting given he already knows Python, but the other languages should hopefully be new.

u/TheNumberOneDuder · 1 pointr/inventwithpython

I believe the problem is not with your use of the requests.raise_for_status() method but rather with the website you've chosen. Amazon thinks you're a bot and it's not letting the request go through.

​

HTTP headers allow clients/servers to send additional information to each other when making a request/response. You can trick the server into thinking you're using the site through a browser (and that you're not a bot) if you pass HTTP headers into the request.

This should work:

import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0'}
request = requests.get("https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994", headers=headers)
request.raise_for_status()

I pulled the headers from the Mozilla developer docs.

The syntax of a user-agent request header is essentially <product>/<product version> <comments>. So in the user-agent header I gave you, we have Mozilla (the product)/5.0 (the version number), and then a comment (about computer specs). Then we have two other product/product version pairs: Gecko/20100101 Firefox/50.0.

​

Hope this helps :)

u/N-Dufva · 2 pointsr/learnprogramming

Automate the Boring Stuff with Python Is also something you might want to look into. It is a little bit easier than "Python the Hard Way" in my opinion but reading both at the same time is completely doable.

Edit (added this after a bit of thinking):

For CS in general there are a couple of answers, the first is sadly to give up on reading coding literature on the kindle. Most books will make the code unreadable. But that doesn't mean that there aren't things to read related to programming. My first suggestion would be The clean Coder.

But if you are willing to remove yourself from the kindle I have two more suggestions.

First "The Art of Computer Programming" is the extreme answer. It consists of several books and I have tried going trough it multiple times without success. But each time I open the any of the books in the series I learn something new. But the books should come with big warning, these are not easy to read.

Second I would go trough the CS50 course on edX.com, simply put it's the best introduction to CS available, and it is can be accessed for free.

u/Lesabotsy · 1 pointr/learnprogramming

This is a good one that covers a lot if you're motivated.

u/Schnevets · 1 pointr/learnprogramming

Required reading for everyone

However, if you're looking for an actual physical book, I'm currently finding Seven Languages in Seven Weeks a very fun read. It may sound daunting, but it more focuses on the differences in languages and how it can help/hinder you, rather than cramming as much in as possible. Also, it's a nice guide that shows a lot without wasting valuable paper re-re-re-re-explaining what an int/char/string is.

u/ab57 · 5 pointsr/C_Programming

I had no real programming experience before I started C as part of a university course. Thankfully, my first course was on the language itself so the problems were all based around understanding the fundamentals of C itself (not on the theory of algorithms).

I know some people here are criticising it as a first language choice, and I'll admit that I am in two minds about recommending it. However, I'm struggling to think of a better choice.
So I'll assume that isn't up for debate or maybe even the class recommends it?

Unfortunately I have never taken a relevant MOOC in this area. I have looked at several books however:

I can't avoid mentioning The C Programming Language by Kernighan and Ritchie aka K&R - if only to say I dont recommend it. I own a copy and feel its not really appropriate for a complete beginner. Its not a book you can sit down and read through. Its basically a reference manual, to be used to help provide context for a particular problem. Unfortunately, at the start I would know what I wanted to achieve but didn't know the correct terminology to describe it, in which case the index becomes useless (even Google can't work these types of miracles).

Absolute Beginner's Guide to C by Greg Perry is however very readable. Its probably a little too verbose for someone who has prior programming experience - as the title suggests its written for the absolute beginner. It should be ideal for you however. If you are prepared to go for a book rather than a MOOC I highly recommend it.

u/The_New_34 · 2 pointsr/learnprogramming

Java: A Beginner's Guide

For someone who does not know much about computers at ALL, this may be a bit challenging at first, as it doesn't go into much detail about downloading the JDK (if you wish to use it and not an IDE) and some issues about javac and java not working (again, this is only an issue in cmd/powershell if you're not using an IDE).

I would also recommend this html, css, javascript, and jquery bundle

The two books can also be bought individually


EDIT: Specified the downsides of the Java book a little more

u/___GNUSlashLinux___ · 9 pointsr/digitalnomad

Automate the Boring Stuff with Python

There isn't a way to learn to code faster, the best thing you can do is code every day. And I mean EVERY day. IMO Python will open the most doors. you may need to pick up other things along the way but Python is a good base.


---


ABC

Always

Be

Coding

u/Luc_R · 2 pointsr/Python

Python is a good language to learn and you can do most things (as a beginner) on an iPod I imagine. However, I would recommend getting an actual computer to go further and do more learning proper tools for development and exploring new libraries will probably be difficult to do on an iPod (not to mention trying to write large programs). Also I would recommend this book http://www.amazon.com/Python-Programming-Absolute-Beginner-Edition/dp/1435455002%3FSubscriptionId%3DAKIAILSHYYTFIVPWUY6Q%26tag%3Dduckduckgo-d-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1435455002 I get it for everyone I know when they want to learn python.

u/JayJay-101 · 1 pointr/learnpython

Hey everyone, I'm looking into learning python as my first programming language. I have had very little experience with programming and I was wandering if this book is worth getting even though it is 6 years old now? Cheers! https://www.amazon.co.uk/Python-Programming-Absolute-Beginner-Dawson/dp/1435455002/ref=sr_1_1?ie=UTF8&qid=1468587952&sr=8-1&keywords=python+programming+for+the+absolute+beginner

u/megazver · 6 pointsr/learnpython

You try the Invent Games with Python / Making Games with Python books, if dipping your toes into gamedev sounds fun.

I am working through Python Programming For the Absolute Beginner and that also has a focus on game-style projects. The first one will probably be a bit too easy for you, but More PPFtAB might be something that interests you.

u/kokkivos · 4 pointsr/gamedev

If you want to learn C# from scratch, read Head First C#! This is hands down the best programming book I've ever read. It leads you through interesting examples (sometimes games) and teaches you how to code in a very hands-on way.

If you don't know how to code yet, probably don't jump right into C++ and Unreal Engine. That's one of the most technically challenging paths for a programmer to take. If you want to be a professional AAA developer on a large team, I would say do it, but otherwise you will get much more done with Unity and C#.

u/cubedspace3 · 1 pointr/learnprogramming

Honestly, my personal opinion is to start out with Java or C++. One of my favorite books in programming is http://www.amazon.com/Introduction-Programming-Comprehensive-Version-Edition/dp/0132936526. You might find this elsewhere for cheaper. Read the book carefully, and work through the problems. When you have a problem come back here and ask questions. That's what I'd do. Don't even pay for a course! Not unless you've mastered at least one programming language first, and you want the credit.

u/Economy_Peanut · 1 pointr/learnpython

By the way..If you'd want to try out Object orientation...You could try the book Python for Absolute Beginners Third edition by Michael Dawson. It got an awesome Chapter on OOP ,taking thing step by step.

u/enkafan · 3 pointsr/dotnet

I generally recommend Headfirst C# for those looking for a gentle introduction

u/jcl · 2 pointsr/Python

how about something like Head First Programming -- "A learner's guide to programming, using the Python language".
This is a great series but I've only skimmed this one.
Here's an amazon link: http://www.amazon.com/Head-First-Programming-Learners-Language/dp/0596802374

u/furas_freeman · 3 pointsr/learnpython

"Automate the Boring Stuff" and other books the same author are free online - http://inventwithpython.com/


There are other free books for beginners

u/shibacorp · -3 pointsr/learnprogramming

For JS, (personally) I've found http://www.amazon.com/Smarter-Way-Learn-JavaScript-technology-ebook/dp/B00H1W9I6C to be the best. You get right into it and does similar things to anki where it reinforces things you've learned previously. It's strict coding and you can't continue until you've gotten everything right.

u/sharkmet · 1 pointr/learnpython

I think this Python Programming book is awesome yet ive seen some less than stellar reviews around here on reddit.

http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1887902996

u/takeMeTo88 · 3 pointsr/learnjava

Java: A Beginner's Guide by Herbert Schildt: https://www.amazon.com/Java-Beginners-Guide-Herbert-Schildt/dp/0071809252

I found this to be a great first Java book.

u/joeverdrive · 1 pointr/learnprogramming

Python Programming for the Absolute Beginner by Michael Dawson

So easy to read, and he makes every step into a game. Worth much more than $20. Khan Academy has Python lessons, too, I think?

u/wpnx · 2 pointsr/learnprogramming

You're right that the way to solve this is to read a reference book. You should probably only focus on one language (there are idiosyncrasies between java & C#)

The head first guides are a good start.
C#: here
Java: here

u/Grayson_the · 4 pointsr/DataHoarder

A lot of people like Python as it is close to english. I like this book. For this kind of task you could also use Bash and just wget the archive they post once a week.