Best programming languages books according to redditors

We found 1,275 Reddit comments discussing the best programming languages books. We ranked the 287 resulting products by number of redditors who mentioned them. Here are the top 20.

Next page

Subcategories:

Java programming books
Ada programming language books
Assembly language programming books
Borland delphi programming books
C & C++ programming books
Compiler design books
Software programming compilers books
Debugging books
Fortran programming books
Lisp programming books
Prolog programming books
RPG programming books
Visual basic programming books
XML programming books
Delphi programming computer books
Python programming books
XSL programming books
XHTML programming computer books
C# programming books
CSS programming books
DHTML programming compute books
Ajax programming books
Perl programming books
Ruby programming books
Swift programming books

Top Reddit comments about Programming Languages:

u/samort7 · 257 pointsr/learnprogramming

Here's my list of the classics:

General Computing

u/Thorium233 · 227 pointsr/technology

Elon did say he was a fan of the scifi thriller Daemon, which is essentially about a billionaire tech genius taking over the world...?

u/Mydrax · 118 pointsr/learnprogramming

Well, this is usually because C++ is not really a beginner friendly language. You need to understand the architecture/fundamentals of a computer system at times to understand certain concepts and are often difficult to understand ex: pointers, dynamic memory allocation etc. and with C++ you never finish learning!

Yes, you are very correct about understanding basics before doing actual game-based programming, C++ Primer is pretty old but it's definitely a golden book alongside it though for someone like you I will suggest some of the books I read a couple years back and some that I believe are better for beginners:

Accelerated C++: Practical Programming by Example

Programming: Principles and Practice Using C++

The C++ Programming Language, 4th Edition- Very big book, read this after you've read the rest.

And a book that I've heard is pretty good for game development with c++: https://www.amazon.com/Mastering-Game-Development-professional-realistic/dp/1788629221

u/septaaa · 91 pointsr/golang

Golang is a great choice for getting started on backend dev!

u/JohnScott623 · 58 pointsr/raspberry_pi

If you want to get her a Raspberry Pi, you will need a couple of things. (I will assume that you intend to get her a Raspberry Pi 3 Model B, more commonly referred to as just the Raspberry Pi 3.)

For one, you'll almost certainly want a mouse, and a keyboard is a must-have. You need a microSD card (at least 8GB recommended) for her to keep files on, though you may want to get her a larger one if she will benefit from having more space. (You will also want to get an adapter like this if your microSD card doesn't come with one to make the microSD card easier to connect to some computers.)

Finally, you will need to find a power source of some sort. You will probably want one that connects with micro USB, though other adapters can work (though they're a little more complicated, so I won't get into that). A good adapter should be about five volts (nearly all micro USB adapters are about five volts, so this shouldn't be a problem), but it should also be at least 1.5A (1500mA) or 2A (2000mA) to be usable. More is better. (For more detailed information regarding power supplies, see the FAQ.)

Some Raspberry Pi starter guides state that you should buy a USB Wi-Fi adapter as well, but this is usually not needed to maintain a Wi-Fi connection with the Raspberry Pi 3, as it comes with a built-in Wi-Fi adapter (and a Bluetooth adapter, too).

If she wants to get into coding or programming, she should learn a little bit about various programming languages and decide which one she wants to learn first. The steps that must be taken to learn programming vary greatly upon the language she chooses. Below, I have listed some resources for the most popular ones.

HTML, CSS, and/or JavaScript: W3Schools, Codecademy, Khan Academy

C and/or C++: Tutorials Point, Head First C

Edit: I made it more clear that one amp power supplies are minimalist and their use should be discouraged.

u/just_had_to_reply · 52 pointsr/cpp

For the salty:

What is the best advice you can give someone just starting a CS education?

Get good at the fundamentals: algorithms, data structures, machine architecture. Learn to use a programming language (or their support system), and not just a language. Work on other major projects.
All the trendy stuff you will learn along the way. When you will be good at the fundamentals, you will be good at games, graphics, web design, networking, security, etc. It’s also beneficial if you know some mathematics.
Here are some links on software, and education.

Hey Bjarne. Which C++ compiler do you use?

GCC or Microsoft, soon Clang (again) as well. To be certain and achieve portability it’s better to use more than one. When I teach students it’s always Linux, Windows AND Apple.

Hey Bjarne. Have you heard of Mozilla's newly developed Rust programming and, if so, what is your opinion about it? It seems to me that it could be a really good competitor to C ++, with, among other easily guaranteed memory safety and safe parallelism .

I know a little bit of rust, and many other languages, but my work is focused on C++ and the use of C++.

If has long (decades) been my ideal to make C++ completely type and resource safe. We are almost there: http://www.stroustrup.com/resource-model.pdf. It's part of a fairly ambitious program to modernize the C++ use: https://www.youtube.com/watch?v=1OEu9C51K2A and https://github.com/isocpp/CppCoreGuidelines.

All too often C++ is used as if it's still 1990.

What is your opinion about C (and C ++)'s use of null - termination of strings. Opposed to, for example, Pascal. With many security holes to follow. C ++ will of course have to continue using the null - termination for simple strings, in order to remain compatible with C. (/u/kingguru stresses that you have the ability to use std :: string ) https://en.wikipedia.org/wiki/Null-terminated_string#History

I prefer std :: string. It is not zero- terminated and easier to use than char. You get nothing from using char to communicate with C. "Safety" is much more than just using a single type (or not). "Security" has to do with the whole system; a hacker goes after what is now the easiest to break through. As far as I know SQL injection is still language dependent (SQL can be used from any language) and very popular with hackers. C ++ is type and resource safe: http://www.stroustrup.com/resource-model.pdf.

Hey Bjarne. I have heard that you are good at answering emails, etc., I would like to say thank you for coming here to answer our stupid questions ;) My first question is probably one that could trigger a much and too long answer:

  1. If you had the knowledge that you have now when you originally made ​​C ++ - What would you have done differently?
  2. What little popular/known language do you think deserves more love?
  3. I have heard that D is trying to implement the " language " that you often citereret to hiding in C ++ ( " Within C ++, there is a much smaller and cleaner language struggling two get out"), do you think that there is a truth to that statement ?

    Almost every new language would be a "C++" Killer. Almost every language wants to and tries to be "general purpose". Almost every language wants to try and be for "system programming". But that is difficult. C++ is in fact, not quite bad and is still being developed to cope with new problems and clear old problems and feel better. E.g. http://www.amazon.com/Tour-C--Depth/dp/0321958314/ref=asap_bc?ie=UTF8 And with approximately 4.4 million C++ programmers: http://blog.jetbrains.com/clion/2015/07/infographics-cpp-facts-before-clion/. Moreover, it is good that there are many programming languages. The world would be a boring place if there was only one. But, there is no language that is close to being the "little language stored in C++ that wants to get out" as I sometime dream about: http://www.stroustrup.com/hopl-almost-final.pdf

    Edit: Will update if there is any interest in it.
u/JonKalb · 28 pointsr/cpp

Modern C++ (C++11 or later) books are not nearly as plentiful as those for Classic C++, but there are a few notables.

Bjarne's college text may be what you are looking for:

Programming: Principles and Practice Using C++ https://www.amazon.com/Programming-Principles-Practice-Using-2nd/dp/0321992784/ref=pd_sim_14_2/144-7765085-0122037

It is aimed at engineers, which makes it less general, but might be good for you.

Of course his general intro is also updated to C++11.

The C++ Programming Language https://www.amazon.com/C-Programming-Language-4th/dp/0321563840/ref=pd_sim_14_2/144-7765085-0122037

This is aimed at experienced systems programmers, so it may be a bit heavy for students, which makes the Primer (that you mentioned attractive).

C++ Primer https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113/ref=pd_bxgy_14_img_2/144-7765085-0122037

Be certain to get the 5th edition.

Of Scott's books only the latest is Modern.

Effective Modern C++ https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996/ref=pd_sim_14_2/144-7765085-0122037?_encoding=UTF8

This is less an introduction for students than for Journeymen (Journeypeople?) programmers.

For just plain good programming style consider Ivan's book.

Functional Programming in C++ https://www.amazon.com/gp/product/1617293814

Don't be put off by "Functional." This style of programming will make your students excellent programmers.

There are some modern books of high quality that are niche.

The ultimate guide to templates:
C++ Templates https://www.amazon.com/C-Templates-Complete-Guide-2nd/dp/0321714121/ref=pd_sim_14_1/144-7765085-0122037

The ultimate guide to concurrency:
C++ Concurrency in Action https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/ref=pd_sim_14_1/144-7765085-0122037

Some library options:

Despite its name, this is mostly reference. A very good reference.
The C++ Standard Library: A Tutorial and Reference (2nd Edition) https://www.amazon.com/Standard-Library-Tutorial-Reference-2nd/dp/0321623215/ref=pd_sim_14_2/144-7765085-0122037

Arthur's book covers C++17, which makes it one of the most modern on this list:
Mastering the C++17 STL: Make full use of the standard library components in C++17 https://www.amazon.com/Mastering-17-STL-standard-components-ebook/dp/B076CQ1RFF/ref=sr_1_fkmrnull_1

To what extent are you teaching C++ and to what extent are you teaching programing?

Good luck and have fun!

u/postmodern · 27 pointsr/ruby

Sidebar

  • Link to /r/rails and /r/ruby_proposals. Encourage all Rails-centric posts/questions to go in /r/rails.
  • Remove some of the Rails-centric books from the sidebar, add more Ruby-centric books (such as The Well Grounded Rubyist and Eloquent Ruby).
  • Link to TryRuby.
  • Link to the GitHub (Free) Sign-Up page.
  • Link to the RubyGems Sign-Up page.
  • Link to RVM.

    Moderation

    Remove link/blog-spam. It's kind of pointless to read a summary on RubyInside, when I can read the original full-article written by the primary-author/project-lead on their own blog. Summaries of complex issues which span multiple blog-posts are OK though, I enjoy reading those.

    Also, please no more articles about simple things like recursion or Arrays (that's what TryRuby and RubyKoans are for).

    What's this about a Contest? Sounds fun.
u/jokem59 · 25 pointsr/learnprogramming

Bjarne Stroustrup recently released the 2nd edition of his book "A Tour of C++" which covers all the major aspects of the language that is current through C++17.

It's concise and a very authoritative source.

The book

u/MrBushido2318 · 20 pointsr/gamedev

You have a long journey ahead of you, but here goes :D

Beginner

C++ Primer: One of the better introductory books.

The C++ Standard Template Library: A Tutorial and Reference: Goes over the standard template library in fantastic detail, a must if you're going to be spending a lot of time writing C++.

The C++ Programming Language: Now that you have a good idea of how C++ is used, it's time to go over it again. TCPPL is written by the language's creator and is intended as an introductory book for experienced programmers. That said I think it's best read once you're already comfortable with the language so that you can full appreciate his nuggets of wisdom.


Intermediate

Modern C++ Design: Covers how to write reusable C++ code and common design patterns. You can definitely have started game programming by the time you read this book, however it's definitely something you should have on your reading list.

C++ Templates: Touches on some similar material as Modern C++ Design, but will help you get to grips with C++ Template programming and how to write reusable code.

Effective C++: Practical advise about C++ do's and dont's. Again, this isn't mandatory knowledge for gamedev, but it's advice is definitely invaluable.

Design Patterns: Teaches you commonly used design patterns. Especially useful if you're working as part of a team as it gives you a common set of names for design patterns.

Advanced

C++ Concurrency in Action: Don't be put off by the fact I've put this as an "advanced" topic, it's more that you will get more benefit out of knowing the other subjects first. Concurrency in C++11 is pretty easy and this book is a fantastic guide for learning how its done.

Graphics Programming

OpenGL: A surprisingly well written specification in that it's pretty easy to understand! While it's probably not the best resource for learning OpenGL, it's definitely worth looking at. [edit: Mix it in with Open.gl and arcsynthesis's tutorials for practical examples and you're off to a good start!]

OpenGL Superbible: The OpenGL superbible is one of the best ways to learn modern OpenGL. Sadly this isn't saying much, in fact the only other book appears to be the "Orange Book", however my sources indicate that is terrible. So you're just going to have suck it up and learn from the OGL Superbible![edit: in retrospect, just stick to free tutorials I've linked above. You'll learn more from them, and be less confused by what is 3rd party code supplied by the book. Substitute the "rendering" techniques you would learn from a 3d book with a good 3d math book and realtime rendering (links below)]


Essential Mathematics for Game Programmers or 3D Math Primer for Graphics and Game Development: 3D programming involves a lot of math, these books cover topics that OpenGL/DirectX books tend to rush over.

Realtime Rendering: A graphics library independent explanation of a number of modern graphical techniques, very useful with teaching you inventive ways to use your newly found 3d graphical talents!

u/bstroustrup · 19 pointsr/Denmark

Naeste ethvert nyt sprog vil vaere en “C++ Killer”. Naesten ethvert sprog der vil vaere “general purpose” maa proeve. Naesten ethvert sprog der vil vaere til “systems programming” maa proeve.
Men der er svaert. C++ er faktiskt ikke helt daarligt og udvikles stadig til at klare ny problement og klare gamle problemener bedre. F.eks., http://www.amazon.com/Tour-C--Depth/dp/0321958314/ref=asap_bc?ie=UTF8 . Og der er ca. 4.4 millioner C++ programmoerer: http://blog.jetbrains.com/clion/2015/07/infographics-cpp-facts-before-clion/ .
I oevrigt er det godt at der er mange programmeringssprog. Verden ville vare mere kedeligt hvis der kun var et.
Men der er ikke et sprog der er taet paa at vaere det “liile sprog gemt I C++ der gerne vil ud” som jeg sommetider droemmer om: http://www.stroustrup.com/hopl-almost-final.pdf .

u/Jerzeem · 19 pointsr/todayilearned

Well, he could also turn his mansion into a deathtrap to try to get lots of publicity for his video game company. Have his daemon short buy his own video game company right before issuing a press release indicating that that company has a backdoor in it, tanking the stock and giving the daemon a tremendous amount of money to enact the rest of his plan.
If that story sounds exciting, I suggest reading the novel it's from, Daniel Suarez's Daemon.

u/dvuevo · 19 pointsr/java

Apparently the 3rd edition is listed on Amazon and coming out in October.

Anyone know if this was actually announced or is it more of a placeholder?
https://www.amazon.com/dp/0134685997/

u/bogoris76 · 18 pointsr/java

It is a best-practice; by default java compares objects by reference, not 'by content'. That said, two objects representing the same logical entity (e.g. Order) are different objects instances (different reference in memory), but represent the same entity e.g. in DB (they have the same ID). Assume the following: equals and hashCode is *not* overriden. You read the same value by id from a DB using jdbc and put them into a HashSet. As these have different references there will by 2 items in a set. Do the same but override equals and hashCode to reflect the content of the object. The set will have only one item. Why and when this is important: if your system (application) relies on subsystem that manages identity of entities (e.g. SQL DB where you use IDs) and do *NOT* rely on actual object identities -- and this is pretty much common for most applications that use external storage (e.g. SQL).

Why to do it for *all* objects: assume we have 2 classes A and B, where A contains a collection of Bs . A has overriden equals and hashCode and compares with another A ; it also has to compare collection of Bs. How ever, collections of Bs will *only* be equal if all Bs are identical -- the same references but not values.

If you happen to use hibernate overriding equals and hashCode is a must IMHO as hibernate will rely on equality by content, not reference.

​

Good read (required :-) ) on the topic:https://www.amazon.co.uk/Effective-Java-Joshua-Bloch/dp/0134685997/ref=dp_ob_title_bk

u/shoalmuse · 17 pointsr/Cplusplus

If you aren’t very familiar with C++, my advice would be to admit it at the outset. Modern C++ is a huge, complicated (and often convoluted) language and they will be able to poke holes in your seeming expertise unless you admit it at the outset. I’ve interviewed people who claim to be a 9 out of 10, but if that is the case you should probably know most of the standard by heart.

That out of the way, I would say that Bjarne’s “Tour of C++” is a great read that can easily be done in a week (I did and I wasn’t cramming for an interview). It gives a nice introduction to modern C++ features for a well-versed programmer coming from another language:
https://www.amazon.de/Tour-C-Depth/dp/0321958314

u/bames53 · 16 pointsr/cpp

This book is more for teaching programming to a beginner than for teaching C++ to an experienced programmer.

Stroustrup has a book aimed at teaching C++ to experienced programmers: A Tour of C++.

u/fiftycircles · 16 pointsr/gis

The first programming-related thing a company would look for in a candidate for a purely GIS job is Python, no doubt. Especially if you're brand new to programming, start with Python. If you're proficient in ArcGIS already, I recommend this book. You can also start with the easy online tutorials like Korlyth mentioned, but remember that you won't truly learn Python unless you apply it. Come up with a project and practice using your new skills. Then, if an employer asks for a portfolio, you have some good examples to share! A good example would be to analyze a large Excel file, import that data into ArcGIS, make some shapefiles from the data, and then maybe run some spatial analysis on those shapefiles-- ALL within your Python script (you don't even have to open ArcMap!). The big advantage is using Python for automation of repetitive tasks. It's tedious to do some analysis for all the individual counties in a state by hand, but you could practice doing this analysis in a script.

After that, I recommend learning some geospatial R. More and more organizations are starting to use R, and it can be helpful to learn some languages/packages that are not strictly used by ArcGIS. I recommend this book.

SQL might be good to learn since GIS tends to be all about databases. It might be tough to learn if you don't already have a huge database/server to work with, but try to learn what you can. I feel like Python, R, and SQL cover a lot of the non-web aspects of GIS programming.

If you want to take it to the next level, then you could learn some web-based programming. It can be tricky to learn this because there are several languages that work together (ex. HTML puts the content on the web page, CSS edits the content to make it look nice, and JavaScript manipulates the behavior of the content). You could start by building a basic web page (non-GIS) so you can learn these languages individually. Once you have a better idea about syntax and how they work together, you could move to GIS stuff. You could start by using a pre-existing web map service such as CartoDB and using HTML, CSS, JavaScript, etc. to put the web map on your own website and edit it.

u/LegionSB · 15 pointsr/ruby

> Where can I learn the ruby way of things? for ex: I think ruby does str.reverse! rather than str = str.reverse()

You want Eloquent Ruby. It's a book about writing idiomatic Ruby, which is what you're asking about.

The Pickaxe book and POODR are both excellent books that you also want, but Eloquent Ruby is probably the best book for what you're specifically asking about.

u/sprayAtMeBro · 15 pointsr/ruby

A friend recently passed on his copy of Eloquent Ruby. It's slightly outdated but still holds up.

u/mcbacon123 · 15 pointsr/csharp

Pick up C# Player’s Guide

This book is helping me so much as a beginner. I have a hard time learning from videos and learn better from books so it’s important to figure out your learning style but if you don’t mind giving books a go, that’s the one.

The problem with video tutorials (especially YouTube ones) is that most instructors don’t know how to teach. Coding, especially, is pretty complicated to teach and takes a special skill that not many have to teach it properly

u/colonpee · 14 pointsr/ruby

You want Eloquent Ruby! This book is perfect for someone that is coming from a different language and has some of the basics of Ruby down already.

u/euphbriggs · 14 pointsr/elm

In some ways, I can sympathize for your frustrations; it doesn't seem like releases happen very quickly. On the other hand, I don't feel the struggle when I'm actually developing in Elm. If the language stayed the same as it is today, I'd still continue to use it for quite a while.

Where I feel there's room for growth is around tooling and libraries. The tools that are out there aren't bad, but (like everything) they can improve and expand. We as a community can start working on this and let Evan continue to deliver the quality he has been at the pace that's been working.

I think the trouble is that Elm competes with JS technologies. Love it or hate it, JS is probably the fastest moving community ever.

Its hard to ignore JS market share, but I don't personally feel its because of the outstanding merits of the language, its because everyone who is involved with frontend web development HAS to touch it at some point or another so there's a lot of effort around improving their experience. I chose to use Elm because its brings sanity to the browser and the predictability of the language.

I think a comparable situation on the backend is Go. Both Elm and Go are engineered languages (versus languages that evolve as needs change). Even now, the book recommended to most beginner is The Go Programming Language, which was published in October of 2015. Find a JS book published two and a half years ago that's still the #1 recommend book for people to learn the language.

I'm sure this relates a lot to my personality type, but I use both Elm and Go because of the consistency. Elm programming at one job is VERY similar to Elm programming at another job. JS programming at one job may be a completely difference experience than you'll find at another job (or even another team within the same company).

I view the price of consistency and good design is slower release cycles.

All that said, I don't blame you semorg, you seem genuinely interested in helping, not just complaining. Your post has me thinking of things I can do to help the community out with adoption. I'll let that idea simmer a bit and try to think of what I can do too.

u/PSNB · 13 pointsr/cpp

Honestly, your best bet would probably be to read a textbook/reference on the language.

Stroustrup's "The C++ Programming Language" is quite good. If you want something more condensed, you could also check out his "A Tour of C++", which is much of the same material in a much smaller package.

u/johnnydsick · 13 pointsr/csharp

I really enjoyed the C# Player's Guide. There's a newer version now but this is what I got.

Edit: I'm glad you guys liked this book as much as I did. To OP, I would offer two more suggestions.

  1. Clean Code This book is NOT specific to C#. However, it gives you a holistic understanding of how to write code that is readable and effective. This is how I was able to transition from writing code that simply functioned (primarily for school) to code that my coworkers could pick up and run with. The book is the bible of software style where I work.

  2. C# and the .NET Framework This is a very optional book in my opinion. It is also a little pricy, very long, more intermediate than beginner and you can gather much of its information from MSDN. However, I prefer looking things up and reading them in a book where possible. I also like having all this information in one location. When I have free time at work, I find myself more likely to flip to an unread section and skim over it than I would with the same information online.
u/pjmlp · 12 pointsr/cpp

Get Bjarne's latest book, "Tour of C++", it describes how to write modern safe C++.

http://www.amazon.com/Tour-In-Depth-Series-Bjarne-Stroustrup/dp/0321958314

u/HelpMyBunny1080p · 11 pointsr/learnmath

Buy this book first.

Learn Python the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code (3rd Edition) (Zed Shaw's Hard Way Series) https://www.amazon.com/dp/0321884914/ref=cm_sw_r_cp_apa_i_WgE2Db53ZBZ58

Then set aside 1-3 hours a day to do the lessons, read the book and/or look up additional material on the internet.

The first chapter or the introduction tells you to try and memorize basic powershell commands, its useful but don't spend too much time trying to get them all down.

u/Kumorigoe · 11 pointsr/sysadmin

Daemon and its sequel Freedom, by Daniel Suarez

Suarez is one of us.

u/LongUsername · 11 pointsr/cpp
u/yamamushi · 11 pointsr/cpp

I would supplement your class with one of the many great C++ books out there, because there are many ways to learn C++ but few of them are good (or even "right") ways.

You should be careful to distinguish between best practices from C++ and the new ones in C++11, and I've found that many courses tend to teach C++ as if it's just C with some extra features.

Of note, some really good books are:

u/paultypes · 11 pointsr/scala

This is all well said, and reinforces a fundamental philosophical point that is rarely discussed explicitly: you can view developers as interchangeable cogs and adopt a marching hordes "more is better" "HR" strategy, or you can adopt a "we need the right people to judge what the right technology is, do what we must to convince the best to join us, and develop a culture of ongoing learning both internally and externally." We at Verizon OnCue (for whom I obviously do not speak, right?) are keenly aware of the challenges Jim mentions, with an engineering staff of well over 200 people, and having made big commitments to Scala and the Typelevel stack, including especially scalaz and scalaz-stream. We've open sourced some of our work; we run reading groups on Functional Programming in Scala; we host meetups; we present our work at conferences, etc.

What we don't do is introduce scalaz into the codebase so we can use the WriterT monad transformer to add logging to our request/response pipeline. For one thing, we wrote Journal for that. For another, the FP community is moving away from monad transformer stacks (see also the previous paragraph's last link).

So yes, Jim has identified a problem... just not with Scala or scalaz.

u/i_have_a_gub · 10 pointsr/scala

I feel like Functional Programming in Scala is the obvious answer here.

u/MellowedGuy · 10 pointsr/learncsharp

The book I used which really got me going was the players guide.

The C# Player's Guide (3rd Edition) https://www.amazon.com/dp/0985580135?ref=yo_pop_ma_swf

My recommendation.

u/cscanlin · 10 pointsr/learnpython

Sorry you had to go through that. Zed Shaw is pretty widely discredited among a big portion of the community for stuff like this, and the fact that he still wants the world to stay in the past on Python 2.

Automate the Boring Stuff is extremely well regarded as a learning resource on this subreddit, which can definitely not be said about LPTHW. It's free online, but you'll probably only really need to skim through it if you feel pretty comfortable with the basics.

I've also seen Effective Python and Fluent Python recommended as good intermediate books if you want something a little more challenging, but I haven't read either so YMMV.

u/OtavioHenrique · 9 pointsr/rails

I advise you to learn ruby first, it will be good for your understanding, rails is a huge framework that helps the developer a lot, but on my opinion, know Ruby is a key for pretty understanding Rails.

I usually recommend eloquent ruby: https://www.amazon.com/Eloquent-Ruby-Addison-Wesley-Professional/dp/0321584104

But the are a lot of good books.

Some free content:

https://launchschool.com/books

https://www.ossblog.org/study-ruby-programming-with-open-source-books/

Some Udemy courses are good too.

u/drjeats · 8 pointsr/gamedev

C++ Primer is one of the usual go-to books for beginners.

[EDIT] Thank you /u/xgalaxy for pointing out I had linked the wrong one. Get this one: http://www.amazon.com/Primer-5th-Edition-Stanley-Lippman/dp/0321714113

u/Sgtcuddle · 8 pointsr/ProgrammerHumor

"A Tour of C++" by Stroustrup is great. Only 192 pages but covers a lot things about how to write good modern C++.
https://www.amazon.com/Tour-C-Depth/dp/0321958314

u/daredevil82 · 8 pointsr/Python
u/slowpush · 8 pointsr/learnpython

You only need two

Python Tricks

https://dbader.org/products/python-tricks-book/

Effective Python

https://www.amazon.com/Effective-Python-Specific-Software-Development/dp/0134034287

​

Everyone recommends Fluent Python, but I think it's a little too dense for an intermediate book. You won't appreciate the book until much later.

u/zoug · 8 pointsr/Omaha

You honestly need to change your attitude if you want a successful career in development.

Red flags from this and your post in cscareerquestions:

  • My periods of motivation to work on code at home are infrequent
  • have no interest in full-stack or front end work
  • completely behind on using things like Ant/Maven, JUnit and other recent additions to Java
  • I'm interested in programming in a Unix/Linux environment.

    If you don't have motivation to learn new tools and languages, that's bad. Good developers need to be innovating, creative and always learning (even if it's just on the job)
    Ant/Maven are simply build tools, and relatively archaic ones at that. JUnit has been around for 20 some years and unit testing in general, way longer than that.
    Why care what environment you program in? Every system has an ability to run bash. While some may be more frustrating than others, it shouldn't be something you tell a company or a recruiter or even a discriminator. It'd make sense if you were looking at system administration but not programming.

    To start, I'd say you should grab a couple programming books and see if you actually want to do/work in this field.

    http://www.codingdojo.com/blog/9-best-programming-books-read-right-now-want-distinguish/

    If you read something like the pragmatic programmer and find it boring/uninteresting - find another field.

    If you decide you want to continue, learn:

    unit testing - Junit, Mockito, etc.
    http://www.vogella.com/tutorials/Mockito/article.html
    https://docs.spring.io/spring-batch/trunk/reference/html/testing.html

    functional programming - Java 8+ streams, lamdas, write some javascript
    https://www.amazon.com/Effective-Java-3rd-Joshua-Bloch/dp/0134685997

    spring - dependency injection, inversion of control, annotations
    https://projects.spring.io/spring-boot/

    That said, the job you're looking for probably does exist if you brush up on basic java skills. It's pretty much a nightmarish hellscape of unmotivated developers and maintaining shitty code with people unwilling to keep their toolsets up to date while they watch the clock til retirement.



u/corrspt · 8 pointsr/java

Might want to wait for the 3rd edition, (October 2017, according to the publisher - (https://www.amazon.com/Effective-Java-3rd-Joshua-Bloch/dp/0134685997)

u/Chrinkus · 8 pointsr/cpp

This is about where I'm at, building with CMake, testing with Catch, trying to use different libraries as often as I can.

I would add the following books:

  • A Tour of C++ (2nd ed) - The C++ Programming Language is exhaustive but unfortunately getting old. The original "Tour" was an excerpt fromTCPL but the second edition has C++17 and 20 additions. Its a nice supplement to the big beast.
  • Professional CMake - This is an excellent, modern book on how to use CMake.
u/phao · 8 pointsr/cscareerquestions

The best way I know how is by solving problems yourself and looking at good solutions of others.

You could consider going back to "fundamentals".

Most programming courses, IMO, don't have nearly as many exercises I think they should have. Some books are particularly good on their exercises list, for example K&R2, SICP, and TC++PL. Deitel's has long exercises lists, but I don't think they're particularly challenging.

There are some algorithms/DS books which focus on the sort of problem solving which is about finding solutions to problems in context (not always a "realistic" one). Like the "Programming Challenges" book. In a book like that, a problem won't be presented in a simple abstract form, like "write an algorithm to sort numbers". It'll be inside some context, like a word problem. And to solve that "word problem", you'll have to find out which traditional CS problems you could solve/combine to get the solution. Sometimes, you'll just have to roll something on your own. Like a new algorithm for the problem at hand. In general, this helps you work out your reduction skills, for once. It also helps you spotting applications to those classical CS problems, like graph traversal, finding shortest plath, and so forth.

Most algorithms/DS books though will present problems in a pretty abstract context. Like Cormen's.

I think, however, people don't give enough credit to the potential of doing the exercises on the books I've mentioned in the beginning.

Some books I think are worth reading which also have good exercises:

u/solid7 · 8 pointsr/learnprogramming

> I'm taking a Unix class in c/c++.

Those are two very different things. Please clarify.

> We are using the book by Sobell. I want to ask if I should read the book?

Uh.. if it's required for your class, yes you should obviously read it. If you are looking for supplemental material, I'd suggest:

u/reposefulGrass · 7 pointsr/learnjava

There are tons of resources in many different formats of many different qualities.

On the sidebar to the right, there are quite a few. You should pick the format you're most comfortable with -- book, video, course, etc.

As I've read a few books, for absolute beginners, Intro to java: Comprehensive was pretty good. Very easy to get into to.

Thinking in Java or The Java Reference Book are pretty good for people who already know the concepts of programming.

I haven't watched videos for learning java or taken any courses, so this is all I can give you.

EDIT:

I've found a playlist on YouTube, I've only watched the two first videos, but they seem great.

As a beginner, you'd first have to install Java and also a tool to easy use java -- an IDE (Integrated Development Environment) for example. Plenty of YouTube videos covering that.

Here is a course that alot of people seem to like and recommend: MOOC

Lastly, some advice: Stick through with it if you really want to program. Learning to program at first is the hardest part on the journey.

u/GreyscaleSunset · 7 pointsr/java

Effective Java is the bible of this language and has recently released it's third edition

See also the O'Reilly series filtered by language/product and release date

u/Versaiteis · 7 pointsr/ProgrammerHumor

Along with the advice from /u/perpetualwalnut the book "The C++ Programming Language" by Bjarne Stroustrup (the language creator). It's limited in being C++11 (we've had 14 as a minor update and now we're approaching the major update of 17) but it's a pretty solid reference for a large portion of the language (>1,000 pages). (Edit:)It's not a book that will teach you C++ directly, but it's a good reference and is pretty extensive while providing motivation and examples of the language features.

For free sources I suggest cppreference.com as a great online reference.

For videos this should give you a good idea of some language semantics that you may or may not be aware of (again by Bjarne).

This video by Sean Parent (former senior programmer/architect, I'm not sure which, of Adobe and worked directly on Photoshop) is a neat intro to how neat using STL can be.

And finally it may also be worth checking out r/cpp for C++ related stuff, they post good articles/videos relevant to the language from time to time.

Sorry for the info dump, this is just all stuff I would have loved to have when I started. C++ is a monolithic language, but you can do some pretty neat/fast things with it.

u/lucidguppy · 7 pointsr/learnprogramming

If you don't have this for C++ you should. It really is a good introduction and a good reference.

u/doom_Oo7 · 7 pointsr/cpp

forget everything you learnt in college in programming. Your teachers are so full of shit it's not even funny. Read this book : https://www.amazon.com/Tour-C-Depth/dp/0321958314

u/bixmix · 7 pointsr/VoxelGameDev

Steps to build your own engine from scratch with no knowledge:

  1. Math: http://amzn.com/0201558025
  2. Programming: http://www.amzn.com/0321751043
  3. Intro Language: http://www.amzn.com/125785321X
  4. C++ Language (Reference Books):
  5. OpenGL Intro: http://opengl-tutorial.org/
  6. OpenGL Reference: http://www.opengl.org/sdk/docs/
  7. Scour the internet for voxel info

    Note: Most people who decide to put together a voxel engine take about 2 years from inception. At the end of the two years, they will have a library they could use to create a game. They've also already made it through the first 4 steps when they start.

    Without a degree program to solidify the concepts, I suspect that the first 4 steps will take at least 2-3 years: about 10-20 hours per week each week.
u/theslyda71 · 7 pointsr/technology

Reminds me of the book Daemon by Daniel Suarez. Great read.

u/retrojoe · 7 pointsr/AskAcademia

I'm about to graduate in Geography (GIS) from a very, very human/critical theory focused dept at state school.

My favorite GIS text so far has been Nicholas Chrisman's Exploring Geographic Information Systems. It's not super exciting, but it's kind of historical, covers a huge number of basic elements of information science, and situates it as technical discipline that serves/is grounded in socio-political things. Great for people who've seen the very basics of clip/overlay/make layer in a GIS, but don't have much understanding of the why/how.

Plus there are no fucking screenshots of software menus.

If you've never seen those on a screen, try Price's Mastering ArcGIS series, comes with data and is basically just lots of long, in-depth tutorials. No need to buy the newest version, the software doesn't change that quickly.

It's not a 'beginner' book per se, but a pretty comprehensive coverage of the concepts of Nature and the nature of geography in anglophone traditions plus a number of historical and current takes on the matter: Noel Castree's Nature.

For those interested in scripting/Python with ArcGIS, I can recommend Zandbergen's Python Scripting for ArcGIS and Pimpler's Programming ArcGIS 10.1 with Python Cookbook. The former is a textbook proper, teaches some theory, lots of contextual (in terms of the program) information, the later is much more of a straight recipe/how to, with a few pointers about how things might get messed up or why you're seeing that error in that place.

u/KryptykPhysh · 6 pointsr/ruby

Eloquent Ruby was one that really helped me out.

u/jb3689 · 6 pointsr/ruby

All of the OO stuff is great but I've found it to be mostly subjective and repeating a lot of the same old boring stuff. I've always felt that programming with heuristics works better for me (e.g. least-visibility principle, sprinkling design patterns where it makes sense, focusing on interfaces, doing mostly TDD but trying to test meaningful contracts instead of being hardcore about red-green-refactor, etc)

Russ Olsen's Eloquent Ruby is still, and will probably always be, my favorite. It taught me how to right Ruby "the right way" by teaching me to learn the core libraries in-depth and explaining what the conventions were in them

Outside of that, Jesse Storimer's books are all good for learning how to use OS features from Ruby which is something I find critically lacking instruction of in the Ruby community

u/banister · 6 pointsr/ruby

Getting a bit dated now but rails anti-patterns is a decent book.

Also, this blog post is gold

EDIT: ruby science is also recommended by some people, but i didn't get a lot out of it - it doesn't even mention many of the modern refactorings such as service objects and so on, and i couldn't stand the way its structured, makes it very hard to find what i'm looking for.

u/nateberkopec · 6 pointsr/rails

Personal favorites:

Crafting Rails Applications by core team member Jose Valim - http://plataformatec.com.br/crafting-rails-applications

Rails Anti-Patterns - http://www.amazon.com/Rails-AntiPatterns-Refactoring-Addison-Wesley-Professional/dp/0321604814

u/iameha · 6 pointsr/cpp_questions

Why pay when you can do it for FREE?

| Instructor| Course | Link                                                                                       | Other |
|:------------:|:------------|:------------:|:------------:|:------------:|
|Kevin and Bryan|Programming in C++|http://www.wibit.net/| - |
|Carl Herold| Computer Science for Everyone|http://www.computerscienceforeveryone.com/| /r/carlhprogramming |
|Bucky Roberts| C++ |http://thenewboston.org/tutorials.php | - |
|Bill Weinman| C/C++ Essential Training |http://www.lynda.com/Eclipse-tutorials/CC-Essential-Training/94343-2.html | Not Free |
|Damien| Introduction to C++|http://ureddit.com/class/23620l | /r/CppForBeginners|
|XoaX| C++ Video Tutorials |http://xoax.net/cpp/index.php | -|
|Barbara Hecker| OO Design in C++ |http://www.youtube.com/playlist?list=PLB6053C17AB31C6CF | -|
|Stephan T. Lavavej| Core C++|http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Core-C- | -|
|Jeremy Siek| C++, Short and Sweet |https://www.udemy.com/cpp-short-and-sweet/ | -|
|University of Illinois | CS 225 |http://www.cs.uiuc.edu/class/fa05/cs225/cs225/_videos/lecture.html | -|
|University of Wisconsin| ME 964 |http://sbel.wisc.edu/Courses/ME964/2012/ | -|
|GoingNative| C++11 |http://channel9.msdn.com/Events/GoingNative/GoingNative-2012 | -|
|Stanford University | Programming Abstractions |http://see.stanford.edu/see/lecturelist.aspx?coll=11f4f422-5670-4b4c-889c-008262e09e4e | -|
|Stanford University | Programming Paradigms |http://see.stanford.edu/see/lecturelist.aspx?coll=2d712634-2bf1-4b55-9a3a-ca9d470755ee | -|


___

  • Here is a list of recommended C/C++ books from the /r/cpp sidebar


  • Legally Free Programming e-books
  • My favorite book is C++ Primer Plus 6th Edition (Buy it here from Amazon)

  • Need help with C++? /r/cpp_questions
u/frrarf · 6 pointsr/Unity3D

Pick up a coding book for C# (I really like C# Player's Guide), learn basic coding concepts first, then learn Unity's spin on things.
Don't copy and paste (at least in the beginning), type it in yourself so you can attempt to learn why it works (or doesn't work).
Use what limited knowledge you have to make very tiny games, because you'll gain experience and you'll learn something(s) new, guaranteed.
There's no "proper" way, except for experimenting and researching.

u/EarlyFish · 6 pointsr/gis

I would experiment with the regular geoprocessing tools and ModelBuilder in ArcGIS. ModelBuilder is basically a visual representation of a python code. It's much easier (in my opinion) because you don't have to worry too much about syntax and formatting. It's a fairly easy way to get your feet wet with the geoprocessing abilities of ArcGIS. You can also export a model to python if want to work with python, but aren't sure how to start.

THIS book is what I'm currently using to learn Python.

u/AchillesDev · 6 pointsr/golang

I'm using The Go Programming Language along with the official Go Tour.

u/cowwoc · 6 pointsr/java

There is nothing to tone down. I'm not questioning your technical competence. I'm just saying this is a design anti-pattern. If you read Effective Java you'll end up with a better design that will avoid the need to ever think of Strings.isNullOrEmpty().

u/nerdwaller · 6 pointsr/programming

Fortunately a new version is supposed to be out this fall (Effective Java 3rd Edition)

u/Sitezh · 6 pointsr/cpp

Someone who has come to the city first time needs a tour first. He must not get missed in details. So https://www.amazon.com/dp/0134997832/ref=cm_sw_r_cp_awdb_t1_FjjXCbC9VH5HS should be a good choice to start with.

u/Fiend · 6 pointsr/ruby

Design Patterns In Ruby - Russ Olsen

u/mysticreddit · 6 pointsr/gamedev

The correct answer to:

Q. Should I learn C or C++ first?

Is:

A. Yes.

WARNING: Highly Opinionated Analysis of C vs C++


I see a lot of people recommending one way but no one offering an analysis of BOTH the Pro's & Con's.

I've been using C++ since ~1990. I've briefly worked on a PS3 C++ compiler when I worked for Sony. I've seen 2 major problems over the years with C++ programmers:

1. People don't exercise discipline and restraint in K.I.S.S.

They use (and abuse) every language feature because they can. There is this tendency to over-engineer even the simplest things. Take a look at this complete clusterfuck of CRC in the Boost library.

1109 lines of over-engineered C++ crap for a simple CRC32 function instead of a mere 25 lines of code!?!?! The C version would:

  • do the same thing,
  • be simpler to write, and
  • be simpler to debug, and
  • more importantly solve the problem at hand, not abstracted to the point of being over-engineered.

    The trade-off would be is that it is less flexible, but WHEN was the last time you needed to use a custom CRC polynomial!?!? One would instead use a different algorithm such as MD5, SHA, etc. that:

  • has better better error-rate detection,
  • less collisions,
  • is multi-core.

    This excellent SO on hashing is but one example of focusing on the big picture.

    2. People lack a basic understanding of the cost let alone the implementation of C++ expressions.

    I've seen people stick a virtual function inside an inner loop and wonder why their performance is crap. I've seen people fail to grasp a basic understanding of pointers. I've seen people not understand memory management and how to guarantee zero memory leaks. I've seen people spend more time on writing an "über" template and waste hours debugging that instead of just writing something in 1/10 of the time and move on.

    IMO, due to the bloated, over-excessive verbose nature of C++ it is for these reason that I strongly recommend a beginner learn C first and then learn C++. You'll have a better understanding of why C++ is designed the way it is, what the design trade-offs are/were, what C++ hacks are, and how to best use the languages to their potential.

    However, this is ignoring the benefits and disadvantages of the Pro's/Con's of why one would learn C++ or C first.

    Learn C++ first


  • C++ Pro
  • C++ really is a better C then C in so many ways, too numerous to enumerate
  • In the ways it is worse the smart people / companies use a sub-set of the language: Ubisoft avoid Templates, Exception Handling, and Run-Time Type Identification. When even a C++ committee member admits he writes in a sub-set of C++ himself you know the language is b-l-o-a-t-e-d.
  • You won't have to unlearn certain "bad habits" of C
  • Your skills will up-to-date
  • Your code will be textually smaller (See note about Con)
  • Job Security -- that is half joking, half serious. Seriously.
  • You can enjoy the time exploring the different nooks and crannies of the language. You will see a different way to solve the same old problems. This can be both good and bad.
  • Eventually you'll be able to enjoy deep technical C++ comedy such as Hitler on C++
  • OOP (Object Orientated Programming) makes it almost easy to quickly write bigger scale programs
  • Is multi-paradigm: Procedural, OOP, Functional, Generic. You have the freedom to pick and choose the parts of the language that fits your needs.
  • For every problem you're trying to solve there is probably language support. Threads, and Atomics are finally part of the language.

  • C++ Con
  • You won't understand some of the C idioms used in practice
  • The language is HUGE -- it will take you a decade to properly learn the language
  • Debugging C++ is a PITA
  • While people write crap code in any language, it is harder to read bad C++ code then C code.
  • Compiler Support for the latest standards is a constantly moving target. Translation: Microsoft's Visual C++ has traditionally had crap support for the latest C and C++ standards. The good news is that MSVC 2015 finally supports a nice section of the language.
  • While C++ can be textually smaller, one's code can easily be "bloated" if not careful (such as templates and partial template specialization)
  • You really won't understand the run-time costs, nor be motivated to understand the underlying assembly language generated, by a "simple" C++ expression.
  • Expect L-O-N-G compile times for any significant code base unless you use a "Bulk / Unity" build (you compile one .cpp file that includes EVERYTHING)
  • It will be hard to resist over-engineering, over-complicating even the most basic tasks
  • iostreams is a complete clusterfuck. Even the C++ committee recognizes there are many problems with C++ iostreams but sadly nothing is being done towards performance at the cost of type safety.
  • It is far easier to blow your cache. Even Bjarne Stroustrup, the language designer, until 2012 didn't have a clue in understanding why Doubly Linked Lists were so slow compared to Arrays. HINT: The L1 Cache usage is critical for performance sensitive code.
  • People tend to over-use the OOP paradigm even when they shouldn't. People make dogma and religion of "Design Patterns", failing to think if the model applies or not.
  • The OOP paradigm is slow and bloated compared to Data-Orientated-Design. See Sony's Pitfalls of Object Orientated Programming
  • Reflection STILL isn't standardized -- everyone has their own "home grown" approach. Maybe in C++17 ?


    Learn C first


  • C Pro
  • The language is tiny and easy to learn. Learn C the Hard Way is a great tutorial.
  • No operator overloading
  • No function overloading
  • No lambas
  • Has no reflection
  • Has no exceptions
  • Has no RTTI (Run-Time Type Identification)
  • Has no STL (Standard Template Library)
  • You will have a better understanding of the run-time "cost" or performance of code instead of a single line hiding "hidden" behaviour.
  • You'll be a better programmer for understanding more of the lower-level implementation. If you don't know how to write itoa() or atoi() you're a noob programmer.
  • You'll be forced to keep things simple
  • You'll understand how to implement OOP in a non-OOP-native language, and better appreciate C++'s syntax sugar of OOP.
  • You'll appreciate how C++ templates solve some but not all "textual replacement" problems and why #define macro's suck for debugging.
  • Is ubiquitous, runs everywhere, and easy to get a C compiler for everything under the sun. Matz's Ruby Interpreter (MRI) was written in C, the Java VM was originally implemented in C, Perl is implemented in C, Linux is written in C. Anything popular and older then 10 years was probably written in C.
  • Variables must be placed at top of a brace {

  • C Con
  • Compared to C++, you'll hate how primitive the language is such as typedefs for structs, no local functions, const is only "half" useful in C -- it can't be used in array declarations (See: http://stackoverflow.com/questions/5248571/is-there-const-in-c ), etc.
  • No operator overloading
  • No function overloading
  • No lambas
  • Has no reflection
  • Has no exceptions
  • Has no RTTI (Run-Time Type Identification)
  • Has no STL (Standard Template Library)
  • Simple algorithms can be tedious to write
  • Variables must be placed at top of a brace {

    With that said there are numerous C++ books I would recommend to ALL C++ programmers. They are sorted from beginner to expert:

  • The Design and Evolution of C++, Bjarne Stroustrup -- another ancient but fundamental to understanding all the kludges in C++
  • The C++ Programming Language, 4th Edition <-- "Mandatory"
  • ALL the books by Scott Meyer
  • Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
  • Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)
  • Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library -- ancient but good
  • Modern C++ Design: Generic Programming and Design Patterns Applied by Andrei Alexandrescu -- another ancient but it blew the doors open for C++ Meta-Programming. IT is interesting that he hates C++ -- he now works on the D language.

    If you can get only one book, get the The C++ Programming Language.

    Even though Bruce's book is ancient he keeps it simple and is a fun easy read. Remember this is before C++98 where the language is much simpler.

  • Thinking in C++, Bruce Eckel

    You can find it online for free

    Lastly, just because you can, doesn't imply you should. Use balanced C++ and you'll be fine.
u/Gaff_Tape · 6 pointsr/ECE

Not sure about EE-related topics, but for CE you're almost guaranteed to use these textbooks:

u/UpAndDownArrows · 5 pointsr/learnjava

Intro to Java Programming by Daniel Liang

Really nice book with tons of exercises.

u/bonekeeper · 5 pointsr/golang

> Is it common to use a reverse proxy for HTTP heavylifting, or handling it in Go itself?
> I see a lot of references using go's http library directly. Is it advisable to use it straight rather than frameworks as in most of the other languages (not very common)?

Already explained.

> How does go take advantage of multiple cores? (natively, not containers).

If you write a simple hello world web server in Go, it will already be concurrent and parallel: whenever a new client connection comes, a new goroutine will be spawned to handle it and run on an available core (paralellism). Suppose you have something more complex than a 'hello world', something that queries a MySQL server, for example: after you write the query request to the network, your application will wait for an answer from MySQL. At this point, your 'goroutine' is suspended and another goroutine that is ready to do some work is awakened, and it's execution resumes from where it left off.

Once MySQL performs the query and replies with data, the event loop that runs inside the Go runtime will notice that there is data available to be read in the socket and will wake up your goroutine for you to deal with that data, and you'll work with the query rows. No need for callbacks or explicit async/await or futures, the runtime manages it for you. As far as your code is concerned, everything happened without interruption.

A lot of things will take advantage of multiple cores automatically for you: the webserver will spawn new goroutines to handle new clients (you don't need to do that yourself), when sorting integers from an array, the sorting implementation is already "multithreaded", etc.

To take advantage of multiple cores explicitly in your code, you basically just need to spawn goroutines to do the work that needs to be done and have a way to communicate with your goroutines (channels, usually) and a way to know when those goroutines are done with their work (sync.WaitGroup). There are a ton of great articles and talks on this subject:

u/VGPowerlord · 5 pointsr/java

To commentt on Effective Java, 3rd Edition comes out sometime soon (October, I think). It even has a preorder on Amazon.

u/lurkotato · 5 pointsr/cpp
u/MetalMikey666 · 5 pointsr/ruby

My path back when I was a rubyist was;

​

u/jesyspa · 5 pointsr/learnprogramming

If you're very far already (using the language for over a year, for instance) you could try to fix the gaps by watching Going Native talks and reading A Tour of C++. If you're just starting out, I suggest either getting C++ Primer or The C++ Programming Language and working through that.

u/abashinyan · 5 pointsr/ruby

Practical Object-Oriented Design in Ruby: An Agile Primer (Addison-Wesley Professional Ruby Series)

www.amazon.com/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330/ref=sr_1_6?ie=UTF8&qid=1398842637&sr=8-6&keywords=ruby#reader_0321721330

Eloquent Ruby

http://www.amazon.com/Eloquent-Ruby-Addison-Wesley-Professional-Series/dp/0321584104/ref=sr_1_9?ie=UTF8&qid=1398842637&sr=8-9&keywords=ruby

Metaprogramming Ruby: Program Like the Ruby Pros

http://www.amazon.com/Metaprogramming-Ruby-Program-Like-Pros/dp/1934356476/ref=pd_rhf_se_s_cp_6_BXWQ?ie=UTF8&refRID=02JTWKY2ZDHPVZWX181R

u/chrisledet · 5 pointsr/rails

This and Eloquent Ruby. Best Ruby books.

u/farmerje · 5 pointsr/learnprogramming

I recommend Practical Object-Oriented Design in Ruby (aka POODR) and Eloquent Ruby.

I'm expert at C, Ruby, and Python, so if you post code examples of Ruby code you feel isn't idiomatic to gist.github.com I'm happy to take a look and offer feedback. I co-founded Dev Bootcamp, so I'm also familiar with the bumps along the way folks have when learning Ruby, even (and sometimes especially) if they're coming from another language.

The main thing to understand about Ruby is that everything is an object. To wit,

Foo = Class.new
foo = Foo.new
puts foo.object_id

Particular classes are instances of the class "Class," if you can wrap your head around that. Objects talk to each other by passing messages around, i.e., methods. In fact, you can define methods on individual objects (although nobody ever does this):

name = "Jesse"
def name.bark!
puts "woof woof"
end
name.bark!

But this is what's happening when you see code like

class Foo
def self.bark!
puts "woof woof"
end
end

The "self.bark!" sometimes seems like arbitrary syntax used to define class methods (or static methods as they're called in some OOP languages), especially to people coming from Java where you have these seemingly-magical keyword preludes. In Ruby you just define methods on objects, period. Classes are objects, too, and "def self.whatever" is the same as "def Foo.whatever". There's a nice nod to referential transparency there that you don't see in many OOP languages.

Every method is defined on some object, even "global" methods. Exercise: when you define a global method in Ruby what object does it get defined on?

When you need higher-order functions Ruby uses blocks, which are more like functions in JavaScript than lambdas in Python (e.g., they can contain arbitrary code, not just a single expression).

If you understand those three things -- everything is an object, objects communicate via messages called "methods", higher-order functions can be defined using blocks -- you understand about 95% of how Ruby thinks about the world.

I'll add, just because you're a C guy, Ruby "pretends" it doesn't really have a class/object distinction, but the default Ruby interpreter (MRI or sometimes CRuby) does actually have separate structs for classes and objects. It's really a language-level thing.

u/tjdracz · 5 pointsr/rails

To go further with Rails, it's a good idea to go further with Ruby. Some of my favorites:

Rails AntiPatterns

Metaprogramming Ruby

Practical Object-Oriented Design in Ruby

Everyday Rails Testing with RSpec

u/polypeptide147 · 5 pointsr/Hacking_Tutorials

[Here](Learn Python the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code (3rd Edition) (Zed Shaw's Hard Way Series) https://www.amazon.com/dp/0321884914/ref=cm_sw_r_cp_api_A4dTAbN5P7PEM)

Edit: the name of the book has parentheses in it so the link isn't very pretty.

u/TemplateRex · 5 pointsr/cpp

Books: First A Tour of C++ and then Effective Modern C++. Website: isocpp.org (it features many blogs, conference announcements, Stackoverflow questions regarding C++11/14).

u/magnus007 · 5 pointsr/sysadmin

Reminds me of my favorite book in the last 5 yrs http://www.amazon.com/Daemon-Daniel-Suarez/dp/0451228731/

The follow up is even better http://www.amazon.com/Freedom-TM-Daniel-Suarez/dp/0451231899/

u/bithush · 5 pointsr/C_Programming

Head First C is very good. It not only covers C but also valgrind, make, threads, sockets and networking, etc. It is a great introduction to C and commonly used tools. I was surprised at how much they covered as normally a beginners book in a lower level language do not cover the more complicated things such as networking and threads.

u/sampa420 · 5 pointsr/gis

Highly recommend this book

u/CuriousHand2 · 4 pointsr/computerscience

Learn Python the Hard Way

and

The Definitive Guide to SQLite

The first one will teach you python, the second one will teach you SQL using one of the simpler engines to manage. Once you've got that down, MySQL, Oracle and Postgres are similar to a point.

u/ehochx · 4 pointsr/cscareerquestions

I wouldn't recommend any websites for C++ because most tutorial authors seem to be stuck in the 90s. Take a look at some good books.

A Tour of C++ is pretty short but gives you a good overview over the language and some STL-features.

Scott Meyers wrote some books about best practices.

If you have a bit more time to spend: C++ Primer 5th edition explains pretty much everything (except concurrency). I read the book (took me a month) and was then able to write solid C++11 code.

u/mart7n · 4 pointsr/cpp

Thanks for your input.

I saw Meyers new book and I have a great respect him (I have other books he has written) but his new book seems more focused on "does and don'ts" rather than syntax for the new standard (based on his own words). I want to concentrate on the basics first.

According to amazon and reviews on amazon, Stroustrups book is heavily C++ 11 focused...
http://www.amazon.co.uk/C-Programming-Language-Bjarne-Stroustrup/dp/0321958322/ref=tmm_hrd_title_0?_encoding=UTF8&sr=8-9&qid=1407752251

What makes you believe otherwise? Have you checked out this title?

u/funkybside · 4 pointsr/booksuggestions

I enjoyed Daemon by Daniel Saurez. Freedom was worth the follow up as well. Might not be exactly the VR world you have in mind, but I thought it fun.

u/kevinlamonte · 4 pointsr/linux

I both agree and disagree.

I agree that it is unlikely to happen, certainly nowhere near the scale of the BBS scene. But I disagree that all of the conveniences you outline (which BTW are fictionalized quite well in Daniel Suarez' Daemon and Freedom novels) are absolutely necessary to make it big enough to make a difference.

Indra Sinha's book Cybergypsies is an interesting read from the era of the late 80's. Most of it revolves around MUDs, viruses, and the interesting people online at the time, but Indra's BBS connections were very important in supporting his political activism, leading to some influence on real events related to the Kurds in Iraq War I.

> An alternative network like that won't going to matter much if only the technically inclined can use it.

Depends on what you value. If you just want a few dozen people to talk to on a regular basis, the "technically inclined" is still a pretty big pool to find friends in. If you are involved in real journalism or political activism, you only need about a hundred thousand people in the network to make a very strong impact. Look at TOR and I2P today: almost no one relative to the total population use them, yet they are in the news pretty frequently.

u/BUTTS_L0L · 4 pointsr/todayilearned

Not trying to be a pedant but for anyone trying to find the book the title is spelled Daemon. Definitely second the recommendation though, I loved the book. I'd also recommend the sequel, Freedom^^TM.

u/HibiscusJ · 4 pointsr/learnprogramming

I am in an Associates program for programming right now so I am not really self teaching, although for some courses I am, but the best piece of advice I have heard to stay motivated is that you have to have a concrete goal. So things like learning a language or finding a job aren't really concrete goals, but something like I want to develop an android app that does "X" would be a concrete goal.


Also, I have found it easier to learn the more I learn. So that is pretty motivating as well. If you need a good resource and you are willing to spend money, [this book] (https://www.amazon.com/Intro-Java-Programming-Comprehensive-Version/dp/0133761312) is what I am using for my java class right now and it is excellent.

u/jbos1190 · 4 pointsr/learnprogramming

This book is made for the absolute beginner in programming. I found it very useful when I learned c++. You can get the 7th (older) edition on amazon used for relatively cheap, if price is a factor for you. Using that book, and getting familiar with an IDE or compiler will definitely prepare you well for your course.

u/Resident_Trent · 4 pointsr/cpp

If you can manage, check out Starting Out With C++. You can find a free PDF of the book with a simple google search. Move through the chapters and do the practice questions and exercises at the end of each chapter. If you can manage that, you will better off than 95% of any other students in your future introductory CS courses.

u/coolin_ban · 4 pointsr/serbia

Koga zanima Python, ovo je takođe dobro - Effective python. Ako nekome treba, pm.

Takođe, ne bih se složio da je u svemu broj 2. U data science domenu je u vrhu (pored njega R).

u/arp242 · 4 pointsr/golang

https://arp242.net/weblog/learning-a-programming-language.html

In the specific case of Go, The Go Programming Language is the best book that I know of. It does assume some programming knowledge though.

As for Go vs. Python vs. Perl, I agree with the commenters that it would depend a lot on what you're hoping to do with it.

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/dstrott · 4 pointsr/aerospace

Look at using the Eigen library for linear algebra in C++. Its used extensively in CV and AI settings, so there is a lot of info floating about it and lots of examples. It does take some getting used to coming from MATLAB though.

Here are some C++ books that have proven useful to me:
The Bible,
Very Useful,
My favorite data structures book,
[Maybe of interest] (https://www.amazon.com/Bundle-Algorithms-Parts-1-5-Fundamentals/dp/020172684X/ref=sr_1_25?ie=UTF8&qid=1484332390&sr=8-25&keywords=data+structures+in+C%2B%2B)

Also, keep in mind that the C++17 standard should be released this year, and there will be a new deluge of books.

Probably want to learn something about numerical analysis:
Numerical analysis

For vehicle dynamics and propulsion, are you thinking more FEA and CFD? If so, learning about GPU programming is probably more interesting since there is so much parallelization...
I recently picked this up but havent really worked through it yet...
but keep your expectations low, it is definitely non-trivial to try to spin your own packages, and it might be more worth your while to look at integrating with something like OpenFOAM for CFD, or to look into some of these packages for FEA. There are a lot of people who have spent a long time making these sorts of tools.

u/MoTTs_ · 4 pointsr/javascript

If you're already an experienced programmer, then I recommend The C++ Programming Language by Bjarne Stroustrup. Stroustrup is the guy who created the language, so this book is the most comprehensive and most authoritative you'll find short of reading the language standard itself.

Or, if C++ feels just a bit too foreign, you could also read Programming: Principles and Practice Using C++, which is also by Stroustrup, but was written to be a college text. It takes its time a little more, and it includes drills and exercises... essentially self-study homework problems to help you get familiar with using the language well.

u/CSMastermind · 4 pointsr/learnprogramming

I've posted this before but I'll repost it here:

Now in terms of the question that you ask in the title - this is what I recommend:

Job Interview Prep


  1. Cracking the Coding Interview: 189 Programming Questions and Solutions
  2. Programming Interviews Exposed: Coding Your Way Through the Interview
  3. Introduction to Algorithms
  4. The Algorithm Design Manual
  5. Effective Java
  6. Concurrent Programming in Java™: Design Principles and Pattern
  7. Modern Operating Systems
  8. Programming Pearls
  9. Discrete Mathematics for Computer Scientists

    Junior Software Engineer Reading List


    Read This First


  10. Pragmatic Thinking and Learning: Refactor Your Wetware

    Fundementals


  11. Code Complete: A Practical Handbook of Software Construction
  12. Software Estimation: Demystifying the Black Art
  13. Software Engineering: A Practitioner's Approach
  14. Refactoring: Improving the Design of Existing Code
  15. Coder to Developer: Tools and Strategies for Delivering Your Software
  16. Perfect Software: And Other Illusions about Testing
  17. Getting Real: The Smarter, Faster, Easier Way to Build a Successful Web Application

    Understanding Professional Software Environments


  18. Agile Software Development: The Cooperative Game
  19. Software Project Survival Guide
  20. The Best Software Writing I: Selected and Introduced by Joel Spolsky
  21. Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams
  22. Rapid Development: Taming Wild Software Schedules
  23. Peopleware: Productive Projects and Teams

    Mentality


  24. Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency
  25. Against Method
  26. The Passionate Programmer: Creating a Remarkable Career in Software Development

    History


  27. The Mythical Man-Month: Essays on Software Engineering
  28. Computing Calamities: Lessons Learned from Products, Projects, and Companies That Failed
  29. The Deadline: A Novel About Project Management

    Mid Level Software Engineer Reading List


    Read This First


  30. Personal Development for Smart People: The Conscious Pursuit of Personal Growth

    Fundementals


  31. The Clean Coder: A Code of Conduct for Professional Programmers
  32. Clean Code: A Handbook of Agile Software Craftsmanship
  33. Solid Code
  34. Code Craft: The Practice of Writing Excellent Code
  35. Software Craftsmanship: The New Imperative
  36. Writing Solid Code

    Software Design


  37. Head First Design Patterns: A Brain-Friendly Guide
  38. Design Patterns: Elements of Reusable Object-Oriented Software
  39. Domain-Driven Design: Tackling Complexity in the Heart of Software
  40. Domain-Driven Design Distilled
  41. Design Patterns Explained: A New Perspective on Object-Oriented Design
  42. Design Patterns in C# - Even though this is specific to C# the pattern can be used in any OO language.
  43. Refactoring to Patterns

    Software Engineering Skill Sets


  44. Building Microservices: Designing Fine-Grained Systems
  45. Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
  46. NoEstimates: How To Measure Project Progress Without Estimating
  47. Object-Oriented Software Construction
  48. The Art of Software Testing
  49. Release It!: Design and Deploy Production-Ready Software
  50. Working Effectively with Legacy Code
  51. Test Driven Development: By Example

    Databases


  52. Database System Concepts
  53. Database Management Systems
  54. Foundation for Object / Relational Databases: The Third Manifesto
  55. Refactoring Databases: Evolutionary Database Design
  56. Data Access Patterns: Database Interactions in Object-Oriented Applications

    User Experience


  57. Don't Make Me Think: A Common Sense Approach to Web Usability
  58. The Design of Everyday Things
  59. Programming Collective Intelligence: Building Smart Web 2.0 Applications
  60. User Interface Design for Programmers
  61. GUI Bloopers 2.0: Common User Interface Design Don'ts and Dos

    Mentality


  62. The Productive Programmer
  63. Extreme Programming Explained: Embrace Change
  64. Coders at Work: Reflections on the Craft of Programming
  65. Facts and Fallacies of Software Engineering

    History


  66. Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software
  67. New Turning Omnibus: 66 Excursions in Computer Science
  68. Hacker's Delight
  69. The Alchemist
  70. Masterminds of Programming: Conversations with the Creators of Major Programming Languages
  71. The Information: A History, A Theory, A Flood

    Specialist Skills


    In spite of the fact that many of these won't apply to your specific job I still recommend reading them for the insight, they'll give you into programming language and technology design.

  72. Peter Norton's Assembly Language Book for the IBM PC
  73. Expert C Programming: Deep C Secrets
  74. Enough Rope to Shoot Yourself in the Foot: Rules for C and C++ Programming
  75. The C++ Programming Language
  76. Effective C++: 55 Specific Ways to Improve Your Programs and Designs
  77. More Effective C++: 35 New Ways to Improve Your Programs and Designs
  78. More Effective C#: 50 Specific Ways to Improve Your C#
  79. CLR via C#
  80. Mr. Bunny's Big Cup o' Java
  81. Thinking in Java
  82. JUnit in Action
  83. Functional Programming in Scala
  84. The Art of Prolog: Advanced Programming Techniques
  85. The Craft of Prolog
  86. Programming Perl: Unmatched Power for Text Processing and Scripting
  87. Dive into Python 3
  88. why's (poignant) guide to Ruby
u/CaptainKabob · 3 pointsr/ruby

I would really recommend reading Eloquent Ruby. It's a good structured introduction to practical Ruby.

u/optimal_persona · 3 pointsr/ruby

I'm getting good mileage out of David Copeland's Build Awesome Command-Line Applications in Ruby 2 (2013). For Ruby-specific best practices (I'm coming from PHP), Sandi Metz' Practical Object-Oriented Design (2019) and Russ Olsen's Eloquent Ruby (2011) are opening my eyes to how it's done here. In particular, Metz' focus on the role of messages in OO design has changed my approach to planning and testing - just in time for a critical project.

u/a11121 · 3 pointsr/programming

Are you referring to C++ Primer 5th Edition or C++ Primer Plus 6th Edition ?

I had actually read that C++ Primer Plus wasn't as good as C++ Primer so I went ahead and bought C++ Primer 5th edition to learn C++ more in depth. The book has updates for C++11 so I was curious if you have a source for Sutter's claim that it's prehistoric.

My problem now is that the book is so big (~1000 pages), that I'm debating whether I should read through the whole thing page by page or just use it as a reference. I feel like if I skip one little detail of some feature, it could bite me in the ass later.

\
Found that info through stackoverflow's list of recommended C++ resources - search for "C++ Primer" and see the related footnote about C++ Primer Plus

u/jquiqu · 3 pointsr/pcmasterrace

coding isn't bad. just get a good book, actually read it, and do programming exercises daily (some can be found at the end of sections in a book if you find a good one). You'll get good in no time.

If you want to learn C++, which is what I learned as my first language, good beginner books are:

http://www.amazon.com/Primer-Plus-6th-Developers-Library/dp/0321776402/ref=sr_1_2?ie=UTF8&qid=1426106569&sr=8-2&keywords=c%2B%2B+primer

and

http://www.amazon.com/Problem-Solving-9th-Walter-Savitch/dp/0133591743/ref=sr_1_1?ie=UTF8&qid=1426106588&sr=8-1&keywords=problem+solving+with+C%2B%2B

u/Jake1055 · 3 pointsr/cpp_questions

I learned for a while off of learncpp, which served me pretty well. I eventually consulted this sub and /r/cpp and discovered it wasn't really held in high regard due to some errors in some of it's early lessons. I eventually bought C++ Primer by Stephen Prata. It's a really long book—quite thorough. The book has a lot of code examples to demonstrate the concepts. I'm about 150 pages in, and I hope to read it more when summer hits(I'm graduating high school). I think both learncpp and C++ Primer are going to give you a good experience, but C++ Primer is going to be more polished and thorough.

My advice would be to learn some things peripheral to c++ before really trying to deep dive. You might be served by researching how computers work at a very low level(like how things are stored in RAM, CPU cycles, basic assembly language, etc. In addition, you should understand the difference between a compiled language and an interpreted language and know what compilers do. C++ is all about memory management, so understanding what RAM is and how the computer uses it will help a lot.

There are people a lot smarter than me on this topic. I would search this sub and /r/cpp for "resources to learn c++" posts. You're likely to find something that will work for you. Good luck!

u/kitanata2 · 3 pointsr/personalfinance

I mentored at DevBootcamp localhost here in Columbus, Ohio and have worked as a software developer for the last 10 years (6 of which in consulting for startup companies). I don't know what program you'll be attending, or the curriculum they teach. Not all bootcamps are created equal, and if you have a scholarship I HIGHLY RECOMMEND you do extensive research into which program you'll be attending.

So first off, I want to say beyond a reasonable doubt, you should do it if you have an interest in software development. I don't want to discourage you from wanting a better life, and it's absolutely true that the best companies hiring devs don't give a shit about your degree or lack of it. The best developer I ever met had a Masters in Psychology, and I've met PLENTY of devs with CS Master degrees that couldn't code their way out of a paper bag.

A degree has no bearing on your ability to be a great developer.

That said, there are three things that will. Practice, patience, and passion. Software development isn't for everyone, and staring at a computer for 8 hours a day desperately trying to get something "simple" to work, that isn't working (sometimes for weeks at a time on a single bug) can be incredibly frustrating. It requires patience, very strong problem-solving skills, lateral thinking, creativity and a DEDICATION to life-long learning.

What you learn in your bootcamp will be invalid (or rather legacy code) in 2-3 years. You must keep learning, above all else.

That said, as much as I believe great developers can come from anywhere, I honestly think you need to have a mind for it. A sort of natural talent. It is completely possible, that you'll find you if you do this, that you're not cut out for it. If you go to a good program, they will guide you through that. Do not let it discourage you in your goals for a better life. For me personally, I struggled a lot in the beginning. I almost dropped out of college, twice. But I kept going, and that innate talent started showing itself.

For some people, they get programming right away. For others, like me, it takes awhile. And for others still, no matter how hard they try they just aren't capable of it. Walk this thread carefully. At first, it will seem like you understand 2% of what people are teaching you. It's like going to China without learning mandarin first. Everything will be confusing as fuck. You're going to think "This isn't for me. I can't do it", but odds are you can. If you are struggling seriously think "I can do this" over "I'm not cut out for it", especially if that 2% starts turning into 10% and then 15% and so on. In this case, it just means you need to get across some barriers to learning. Keep at it.

On the other hand, if you are doing everything you can to learn, and you've put in a TON of work and time and you're not retaining 5% of the stuff you're learning (or keep forgetting the same simple concepts over and over) after you've been doing it for awhile, do not be ashamed to throw in the towel. You gave it a shot. The only way to know if this line of work is for you, is to try it.

Here's how.

Before you start this bootcamp you need to start programming today. Like right now. Seriously. NOW. I don't give a shit about how your situation might be holding you back. Crash in the park. Start couch surfing. Go to the library. Find local tech events. Buy a shitty laptop off craigslist and dump linux on it, and start hacking. Go through this and this and this and this and this and this and buy this book. Start EASY. Pick the simplest looking thing, something targeted to kids, or middle-schoolers and start there and work your way through whatever you can. DO IT SLOWLY. Understand the fundamentals. It will seem like your not accomplishing anything for awhile (as far as writing cool looking apps). It's not a race. Understand what is going on with the code. Why does it do what it does? Why does it keep erroring? Why isn't the compiler doing what I think it's doing? Ask Questions. If you don't understand something, and you get stuck, go learn something else about coding, and come back. Learn to walk around problems. You're not going to get everything all at once. Some concepts are REALLY hard at first. Go learn the easier stuff first, then come back and try to climb that mountain again.

One of the most common thing people learning programming have told me, is that they did not realize it took so much effort just to do seemingly simple things. You will be surprised at the amount of code you have to write to get something to work, and you will beat your head against the wall every step of the way while you're learning. The compiler will fight you. The program will crash. The code just won't work, and it will seem completely unreasonable why. Shit will break without telling you, or giving you obvious error messages. Just realize, that every problem is a wall, and every wall you knock down gets you closer to your goal.

Once you feel like you can't learn anymore on your own. THEN start your bootcamp. Have a list of questions ready for the bootcamp. Write down specific things you weren't able to learn on your own, that you need help with there. ASK A SHIT TON OF QUESTIONS. Get a mentor and bug the ever living shit out of them.

Top 5 things that will fuck with you while you're learning.

  1. Basic control flow. (Loops, if statements, and shit)
  2. By reference / By value.
  3. Stack traces & Debugging.
  4. Object Oriented Thinking.
  5. Functional programming (Closures specifically).

    ---

    Now, for the reality check, after you graduate. It's extremely unlikely you'll get a job as an entry-level dev in Omaha (I looked up the stats) for more than $60k/year. It will take you at least 5 years to work up to $100k/year and that will require you to learn at an incredibly breakneck pace (and to hop jobs about once every 2.5 years). To get to that level of skill you will need to be writing code, on average 60 hours or more a week, and you'll need to experiment with shit that you aren't using at work and work on side projects at home. You'll need to do this non-stop.

    Lastly, even with DevBootcamp (which I think is an absolutely great program), the graduation rate was around 60%. Not everyone makes it, and even of those that did, not everyone got jobs. You need to go in there with everything you got, and even if it doesn't work out at the bootcamp, DON'T STOP PROGRAMMING. If this is what you want to do, and you keep learning, you can do it. I promise you. Just don't pump yourself up thinking it will be a cakewalk and you'll make out with a nice job in the end. It might not happen. If it does and you find yourself at a nice company, and you aren't putting in the work to learn, and grow, soon you'll be without a job and without the ability to find one. But if you work hard, and break through every wall that is holding you back, and you persevere you will make it in the end.

    The life of a developer is incredibly rewarding, and I would love to use some library you write in 3 or 4 years that makes my life easier. So go give it a shot, give it everything you go. Don't let failure (or the fear of it) hold you back.

    Good luck.
u/uptimefordays · 3 pointsr/sysadmin

In no particular order:

u/alexsparty243 · 3 pointsr/learnprogramming

And it's awesome and accessible because its free! Check it out here. There's also a physical book you can buy here.

u/bitman_ · 3 pointsr/learnpython

I've read this book: https://www.amazon.com/Learn-Python-Hard-Way-Introduction/dp/0321884914

And I have also used: https://www.codecademy.com/ quite a bit and I highly recomend it!

u/ziptofaf · 3 pointsr/learnprogramming

> Right now I don't even know the limit of what can be done with Python. Idk what it is used for.

Literally anything - Django is one of the most popular web frameworks. You have PyGame if you want to make video games. Heck, it's even used in Deep Learning via Theano. You can also use it as a script language - be it as an "addition" to a different language in your application or a separate script to run. Easily ones of the most versatile languages.

Of course there are certain aspects of a language that might make it not suitable for specific tasks too. You do need a Python interpreter installed on your computer to make use of programs written in it after all (meaning it's pretty much useless for embedded devices), it's raw performance is but a small fraction of what C++ can do (but in exchange it's much easier and faster to code) so it's probably not the best choice if you want to write your own server/game engine/computation heavy application.

As for where to find some tutorials - I would look for Learn Python the Hard Way, it's pretty often recommended. Despite the name, it's not hard. There's also Automate the Boring Stuff with Python.

But learning of a language itself is like knowing words in a foreign language. But you still need to understand how to make sentences in it. So I also suggest visiting /r/dailyprogrammer to do their beginner and intermediate level quizes and/or eventually getting a book on algorithms and data structures. This should be enough for you to understand how to actually program things.

Afterwards it's a question of what you WANT to do, it will be a good time to pick up a project to work on. Be it a game, website, some kind of a program - whatever. This is where you learn the most but also a time when you won't find answers lying directly in the books and you will need to self study while understanding how to use google/ask correct questions.

u/mohself · 3 pointsr/cpp_questions

I enjoyed reading A Tour of C++ by Bjarne Stroustrup. It is short of 200 pages, recommended by Herb Sutter in one of his CppCon talks as the bare minimum every C++ programmer should now, and touches the basics of modern C++ (up to C++11).


Scott Meyer's books are highly revered in the industry as well, based on what I have fathomed. I am gonna read this next.

u/srnull · 3 pointsr/programming

This is useful for those who know what to look for. Otherwise, I don't think it's very useful. Lots of bad, potentially damaging, information is linked to. Just because there are lots (300+) of links doesn't mean they are good.

cppreference.com is listed under "Websites", but should really be a top reference under "standard libraries" or something similar. cplusplus.com is listed ahead of isocpp.org.

In compilers, ICC is ahead of GCC?

The first couple links under "Books" are horrible. These days, you want Stroustrup's A Tour of C++ almost without exception, unless you know that you want Stroustrup's The C++ Programming Language, 4th edition.

And this is just a pet peeve, but I hate UIs that are unaligned rectangles of information. The listing this is based off of, awesome-cpp (in the "awesome-x" series, I guess) is nicer in that sense.

u/JAguilon · 3 pointsr/gatech

If you can already program, the most important thing is to get a good handle on modern C++. I can't think of a good class at GT that emphasizes things like smart pointers, multi-threading, or the modern standard lib. I learned from A Tour of C++:

https://www.amazon.com/Tour-C-Depth/dp/0321958314

u/JackAtlas · 3 pointsr/cpp_questions

If you know how to program and even know some C++ already, I suggest reading A Tour of C++ by Bjarne Stroustrup. The book is short and concisely written and gives you a brief introduction to all aspects of (modern) C++. You'll also get a few guidelines on coding style, best practices and language idioms.

u/-eddy · 3 pointsr/sysadmin

Daemon is awesome. One of the few books I've read multiple times.

u/JaseDroid · 3 pointsr/suggestmeabook

So, an interesting take on this is the book Daemon, by Daniel Suarez. (link to the series if you want them all)

It's about an AI program that goes live after the death of a developer. It is able to blackmail, seduce (non-sexual), and manipulate people to do its bidding.

I think this is right in the neighborhood of what you want.

u/archont · 3 pointsr/Planetside

Congratulations, the DAEMON's algorithms have selected you to be an operative of the darknet. Accept, and in your briefcase you will find data overlay glasses biometrically precalibrated to your persona, identification required to infiltrate your corporate target and 50 darknet credits. Should you accept, thr AutoM8 autonomous vehicles in your area will be at your disposal, as will tokens to access and bypass your target's network. Reject this offer, and you will be killed painlessly via gas.

Welcome to the darknet, operative

u/Treigar · 3 pointsr/Unity3D

The C# Player's Guide, 2nd Edition. It doesn't have a focus on game development, and honestly, I don't it should. C# is a programming language; a tool. Game development is simply a specific use case for C#, like smashing in nails is a specific use for a hammer. It can be used for other things.

I read this book front to back, and it helped me understand C# fully and develop some of my problem solving, which is an important skill in game development. I doubt a game development focused book will mention anything about the stack or the heap, the CLR and the .NET framework, or reference and value semantics.

Do the problems in the book, reference it and Microsoft's documentation often (and maybe get a C# reference book), and you'll have no problem developing anything in Unity.

u/JushtFinisht · 3 pointsr/csharp

The C# Player's Guide (2nd edition) by RB Whitaker is a good recent one for beginners and intermediates. It's also for C# 6.0.

If you don't want to pay for a book, I recommend either the Yellow Book or The Fundamentals of Programming by Svetlin Nakov, et al.

u/Anman · 3 pointsr/gamedev
u/adscott1982 · 3 pointsr/csharp

I didn't like it - I thought the demo examples were the most boring thing ever.

I prefer the 'C# Player's Guide' as a beginner book. I really thought he explained the concepts very well and for whatever reason was able to get through pretty much the entirety of it, which is a first for me as I don't usually have much stamina for these things.

https://www.amazon.com/C-Players-Guide-3rd/dp/0985580135

I remember I got the first edition a few years ago and I took the time to message RB Whitaker at the time how good I thought his book was. It is on to the third edition now so other people must agree.

u/redditthinks · 3 pointsr/C_Programming

I used Head First C which has a friendly style. Just yesterday I found Beginning C which looks pretty good.

u/MyWorkID · 3 pointsr/gis

You can definitely script this.

This is a really, really great book- I think:

http://www.amazon.com/Python-Scripting-ArcGIS-Paul-Zandbergen/dp/1589482824/

Check the sidebar at /r/GISscripts if you haven't. You might find something helpful.

Otherwise, just figure out the exact workflow you need to do and then Google stuff like "ArcGIS 10.1 select by location" which would lead you to this:

http://resources.arcgis.com/en/help/main/10.1/index.html#//001700000072000000

And just learn from there.

You might take a look at ModelBuilder as well.

u/xbrightcursivex · 3 pointsr/gis

I'm in my last class finishing up my certificate through Penn State. One thing I can tell you is put all your class projects into an online portfolio. I didn't do that so I will have to go back track and put them all up.

I have no background in GIS and started the program out of genuine interest. The program was well worth the money but since I have no prior experience it was kind of a GIS intro/immersion program. Basically I wouldn't apply to GIS jobs based on my certificate alone. Because of this I plan on studying on my own using ESRI's books to reinforce what I learned through Penn State . Again, I plan on posting the associated projects from these books into an online portfolio.

Current books I will be going through:

http://www.amazon.com/gp/aw/d/1589482824/ref=mp_s_a_1_1?qid=1405071816&sr=8-1&pi=SY200_QL40

http://www.amazon.com/gp/aw/d/1589483359/ref=mp_s_a_1_1?qid=1405071858&sr=8-1&pi=SY200_QL40

http://www.amazon.com/gp/aw/d/158948214X/ref=mp_s_a_1_1?qid=1405071905&sr=8-1&pi=SY200_QL40

u/cannibalbob · 3 pointsr/cscareerquestions

The feedback about "jargon for development" can be solved by going through some books cover to cover, making sure you understand the theory, and implementing the exercises. I understand that feedback to mean that the person who gave the feedback believes there is too high a chance you will inflict damage on the codebase by making decisions not grounded in solid theory.

Examples of titles that are classics and widely known:
Algorithms (4th Edition): https://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X (there is an accompanying coursera course).

Code Complete: https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1?s=books&ie=UTF8&qid=1469249272&sr=1-1&keywords=code+complete

Clean Code: https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/ref=sr_1_1?s=books&ie=UTF8&qid=1469249283&sr=1-1&keywords=clean+code

Functional Programming in Scala: https://www.amazon.com/Functional-Programming-Scala-Paul-Chiusano/dp/1617290653/ref=sr_1_2?s=books&ie=UTF8&qid=1469249345&sr=1-2&keywords=scala

Learning Python: https://www.amazon.com/Learning-Python-5th-Mark-Lutz/dp/1449355730/ref=sr_1_1?s=books&ie=UTF8&qid=1469249357&sr=1-1&keywords=learning+python

Effective Java: https://www.amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683/ref=sr_1_5?s=books&ie=UTF8&qid=1469249369&sr=1-5&keywords=java

Haskell Programming From First Principles: http://haskellbook.com/

I included multiple languages as well as language-agnostic ones. Functional programming is the near-to-medium term future of software engineering, and most languages converging towards that as they add functional features.

I don't think bootcamp is required. Learning how to learn is the most important thing. If you get into these books, lose track of time, and feel "aha! that's how these things that I previously thought were unrelated are actually the same thing!", and are able to keep it up for weeks, then that is a good sign that you can get to where you want to be.

u/panicClark · 3 pointsr/ItalyInformatica

Io lavoro come sviluppatore ormai da diversi anni, anch'io non laureato (o meglio, laureato lo sarei, ma in un ambito piuttosto distante dall'informatica).

Le difficoltà maggiori all'inizio le ho incontrate quando si trattava di andare un pelino oltre al "giocare col lego" con linguaggi e framework (rigorosamente di alto livello): i fondamentali di come funzionano le reti e i protocolli, le strutture dati e gli algoritmi. Il primo ambito sto ancora cercando di approfondirlo bene, per strutture dati e algoritmi all'epoca mi consigliarono Introduction to Algorithms e devo dire che mi ci sono trovato abbastanza bene, seppure l'ho trovato noioso da seguire.

Mi è tornato relativamente più utile approfondire i linguaggi funzionali. Il classico in tal senso è Purely Functional Data Structures, ma a me è piaciuto di più Functional Programming in Scala.

u/NetSage · 3 pointsr/learnprogramming

Yes, but a lot of it it's also a lot insanely simple one liners because it's a basic stuff on HTML, CSS, Javascripts, Node, and a few other thing I think. It's not just JAVA.

But I mean just a quick google search bring up https://www.amazon.com/Intro-Java-Programming-Comprehensive-Version/dp/0133761312/ref=sr_1_1?s=books&ie=UTF8&qid=1472823710&sr=1-1 which a book of over 1000 pages. You can't tell me there is only a days worth of knowledge and practice in there.

The issue with JAVA and interactive sites is it has to be compiled making it probably not the friendlies thing to host.

Edit: Someone just posted this in the irc channel and figured it may help :P.

https://github.com/Michael0x2a/curated-programming-resources/blob/master/resources.md#java

u/lost_in_trepidation · 3 pointsr/javahelp

I really like Intro to Java Programming, Comprehensive edition. link

It has tons of exercises and it covers lots of Java 8 features and JavaFx (the modern gui library for Java).

u/BirthdayBuffalo · 3 pointsr/androidapps

If you're starting completely from scratch (no programming knowledge at all), then learn Java. Intro to Java Programming is a pretty good and in depth book. Chapters 1-13 should be good enough to get started with Java programming.

If you want something faster or just need a refresher, than the Java tutorials from TutorialsPoint could work.

Other wise, if you already know Java, the BNR Android Programming book is a really good book for Android programming. It covers a lot of topics; the basics all the way to the more advanced, real world applications.

The Android Developers site is incredibly useful as well. The training and API guide sections do a good job at explaining more specific things and some sections include code snippets.

The biggest hurdle for me when I started was just setting everything up. Installing Java and Android studio was a pain because all the hiccups. It's more stable and straight forward to install now though. I'm pretty sure the intro chapter in the BNR book covers installation as well.

u/rewardiflost · 3 pointsr/NoStupidQuestions

You don't legally.

It is available for purchase, from Amazon, GaddisBooks / Pearson, and a few other legitimate places.

Why would you think a legit download site would (a) give you this book free, and (b) keep redirecting you to download a pdf converter?

u/iAmTheRedditCEO · 3 pointsr/college

I'm a computer science student, and let me just say, if you do not have a passion for coding you will have a hard time continuing this major. Start off learning a programming language like C++ or Python or C# and see how it goes. My favorite book that helped me learn C++ is [Starting Out with C++ from Control Structures to Objects (8th Edition)] (https://www.amazon.com/dp/0133769399/ref=cm_sw_r_cp_apa_QUHZAbNE0GWHD).

u/KRONie · 3 pointsr/learnprogramming

Download them all and give each one a shot, but you're putting way too much thought this.
It literally doesn't matter this early on. You can get away with using notepad.exe and gcc. VSCode requires some manual setting up but its super versatile, supports many languages, and has a ton of plugins. VS Community comes with everything you need out of the box and is free (For a beginner there's literally no difference between community/pro/enterprise except the price tags). Never used clion, but I imagine it's fairly sophisticated as well, but it's paid, and Im not sure I'd justify spending money on something while im learning if im only gonna use 1% of its features considering there are free alternatives that do essentially same thing with main difference being the interface.

Don't stress too much about what IDE to use. Find some material, and stick with the program and as you go along youll have better idea of what youre looking for in an IDE and which one of the options suits you best.

Im not sure if there's a book for C++ similar to "Automate Boring Stuff" as Python and C++ have different purpose. That's not to say that there's things you can do in Python that you can't do in C++, but there are definitely things that python is better suited for compared to C++. It's like opening a tin can with a knife. Doable? Totally. Are there better tools to do the job? Definitely.

This is the book we used in our class https://www.amazon.com/Starting-Out-Control-Structures-Objects/dp/0133769399

It seems well written, and easy to follow along for a complete beginner, and is fairly comprehensive to get you up and running with C++.
For what it's worth, I learned on Visual Studio Community and haven't felt the need to switch IDEs since.

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/visene · 3 pointsr/learnpython

Effective python is an awesome book if you already know programming or if you already know python.

https://www.amazon.com/Effective-Python-Specific-Software-Development/dp/0134034287/

u/PolyglotPirate · 3 pointsr/golang

I guess it depends on how far along you are with Go. I used the following:

"The Go Programming Language" from Addison-Wesley, one of the authors Kernighan, co-authored the "C Programming Language" book. I'm kinda a programming language theory nerd, so I loved it. https://www.amazon.com/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440/

I really got a lot out of "Go in Practice" from Manning Publications, especially liked the Concurrency + Concurrency Patterns chapters.

https://www.amazon.com/Go-Practice-Techniques-Matt-Butcher/dp/1633430073/

Since we almost always need some web programming these days, I used "Web Development with Go" for learning some basics and more advanced Go web programming. The code from the book is in github here: https://github.com/Apress/web-dev-w-go. It was good to get started with some APIs in the Go ecosystem.

Next I'm going to start on GUI development with go from Packt: https://www.packtpub.com/application-development/hands-gui-application-development-go

I've also been going through the O'Reilly learning path for Go from Rachel Roumeliotis. https://learning.oreilly.com/videos/learning-path-go/9781491958100/

Some others:

Profiling Go applications: https://www.integralist.co.uk/posts/profiling-go/

I always love the Java/JavaScript/Groovy/Ruby/Python "puzzlers" talks, check out the go puzzlers here: https://talks.godoc.org/github.com/davecheney/presentations/gopher-puzzlers.slide#1

u/skarlso · 3 pointsr/golang

Did you do research on your customer base? Is there really a need for yet another Learn Go for a Beginner style of book? I'm really struggling to actually find some good advanced material about Go being used in production environment. And production level architecture and deployment systems and builds with jenkins, or whatever. But there are many beginner guides out there already.

It's fine if you want to, I'm just saying, that something a bit more advanced might sell better? Or would be altogether beneficial?

u/Mittalmailbox · 3 pointsr/golang
  1. Take the go tour
  2. Read official docs or The go programming language if you prefer books
u/khedoros · 3 pointsr/golang

I started with the Tour of Go, and continued with The Go Programming Language, along with playing with the AWS Go SDK examples and code in my employer's repositories.

Coming from a C++-ish background, it was pretty easy to read a bit about, then start writing. There are things that are obviously inspired by object orientation, both in the class-based and message-passing-based senses.

u/randcraw · 3 pointsr/AskComputerScience

For a quick (256 pages) overview of modern C++ (2018), I like "A Tour of C++" by Stroustrup.

https://www.amazon.com/Tour-2nd-Depth-Bjarne-Stroustrup/dp/0134997832

​

"Accelerated C++" by Koenig and Moo is also a good short intro (352 pages), but is dated (2000).

u/NEET_Here · 3 pointsr/cpp_questions

It's not 700 pages. The second edition is just at 256 pages.

https://www.amazon.com/Tour-2nd-Depth-Bjarne-Stroustrup/dp/0134997832

u/wnavarre · 3 pointsr/Cplusplus

Ok. I would probably recommend A Tour of C++. It is a short book because it doesn't go on and on about stuff you already know, but is still friendly to C++ beginners.

EDIT: Read the description here <https://www.amazon.com/Tour-2nd-Depth-Bjarne-Stroustrup/dp/0134997832/ref=sr_1_1?ie=UTF8&qid=1527540269&sr=8-1&keywords=a+tour+of+C%2B%2B> and see if it describes what you want.

In particular:

> This guide does not aim to teach you how to program (for that, see Stroustrup’s Programming: Principles and Practice Using C++, Second Edition), nor will it be the only resource you’ll need for C++ mastery (for that, see Stroustrup’s The C++ Programming Language, Fourth Edition, and recommended online sources). If, however, you are a C or C++ programmer wanting greater familiarity with the current C++ language, or a programmer versed in another language wishing to gain an accurate picture of the nature and benefits of modern C++, you can’t find a shorter or simpler introduction than this tour provides.

u/lemontownship · 3 pointsr/cpp

> I will say that C++ is a very difficult language to pick up.

C++ is massive, being a three-decade accretion of features. Stroustrup's indispensable book, over 1300 dense pages, is only a succession of introductions to various aspects of the language. You often go to the web to get details.

u/MetaKazel · 3 pointsr/learnprogramming

Sorry to hear that, friend.

I would definitely try to get your hands on a copy of The C++ Programming Language, it's got enough content to last you a while and it'll definitely show you all the ins-and-outs of C++.

u/cauchy37 · 3 pointsr/oddlysatisfying

I personally prefer his The C++ Programming Language over this book as a reference for C++ and The C++ Standard Library: A Tutorial and Reference as a reference to STL. This one feels to me a bit more of a beginner book, still a very good read though!

u/ProvenDantheman · 3 pointsr/Cplusplus

Posting this as a top level comment so people can see this without digging. Here are some of the resources I have used plus additional ones I've found that may be useful:

  • cplusplus.com - Goes over the basics, I've personally used this a lot.
  • learncpp.com - Goes more in depth with standard library functionality.
  • udemy - Here's a free C++ udemy course. Udemy is a great resource for learning languages and game engines.
  • Effective Modern C++ - Book - A great book that acts more of a reference to C++ functionality. It also goes over best practices.
  • The C++ Programming Language, 4th Edition - Book - A reference on the C++ programming language.
u/Peterotica · 3 pointsr/oculus

I'm in a similar position. I haven't used C++ since I was in school, and at the time I was just learning, so I never obtained a real deep knowledge of the language. Not to mention that there are whole new ways of solving some problems with the additions from C++11. What I'm doing right now is reading through The C++ Programming Language. I am hoping it will do the job of reintroducing me to the entire language while explaining all of the new stuff.

It seems to be going well thus far, but I have only just gotten started.

u/mitchell271 · 3 pointsr/learnprogramming

The C++ Programming Language is one of my most prized books. It assumes you know some C/C++, so it's not the best starting point, but it has the depth and wisdom that only the creator of a language has. Which is why he wrote this book.

u/theimp_ · 3 pointsr/orlando

If this is your first programming language its a tad unfortunate that it has to be C++ but by no means does it mean it is bad or anything. In fact its the language most aspiring computer scientists started out with in college prior to the 2000s.

You can start off with
Programming: Principles and Practice Using C++
and then going onto The C++ Programming Language, 4th Edition after completing the first one. There is also C++ Primer that is also highly recommended as another book for starting out.

A book along with web searches when you have questions will get you pretty far. Having someone to ask questions if you get stuck on something conceptually is also useful. The best advice I can give you is to really play around with the language as you are learning and do most of the practice exercises too. Stroustrup also has solutions to the exercises from the first book I mentioned online. Hopefully you have some months available to learn the language. On top of that you might need to learn some computer science topics like data structures as well. You just can't rush these things but you can accelerate it a little.

As for me, my C++ knowledge is 'rusting away' by the day. I learned the STL with C++ when it was made official only a couple years after (like over 10 years ago). Nowadays you have Boost and the language itself has changed. I have not presently needed to update my C++ knowledge to what is latest and greatest but I shall.

Also worth pointing out is that In my experience, when you work with different companies you might find that you never use official C++ libraries and most current language features, but you are supporting legacy stuff that was first written maybe 20 years ago when not even built-in STL was available. This means either you are going to use some now-arcane implementation of someone's version of base libraries or the company rolled their own from the ground up many years ago, and because its so well entrenched in the code-base it continues to be used many years later. Not a big deal, but you might want to find that out for yourself, that if you are learning the latest and greatest of library and language features - you might or might not be using it in practice with your company.

You can PM me if you have questions but I'm not sure I can commit the amount of time you might need in a tutor role.

u/PursuitOfAutonomy · 3 pointsr/learnprogramming

> It seems like the real core of programming is to know how to ask the right questions to find the answers and apply them.

You are correct. The C++ Programming Language book is 1368 pages. Look how big the Java 8 API is. The Python Standard Library has 35 topics, breaking down to about 10 subtopics each, that can then have pages and pages of information each.


You are always going to need a reference to do something there is simply too much to memorize. Even if you know exactly what you want to do chances are you are going to have to look something up.

u/REAL_CONSENT_MATTERS · 2 pointsr/learnprogramming

maybe the liang java book if you want an actual textbook? it's a pretty thorough introductory book and even gets some algorithm practice in, so you could solidify old concepts and fill in any gaps in your knowledge before moving on to a specialization.

otherwise the bot knows whats up and you could check the online resources it linked to.

for motivation what worked for me was promising myself i'd do a certain number of hours per day (i picked 3). if you have trouble finding the time, what i recommend is resetting your sleep schedule so that you get up 3 hours early (or however much you want to do it).

then you make yourself do 3 hours of focused practice when you're at you're most well rested and focused and when you're guaranteed not to have unexpected interruptions. do this for 3 months. congratulations, you've now picked up the programming habit.

for me i no longer worry about hours per day because it's just become what i do for fun when i'm by myself, but committing to 3 hours per day for 3 months is how i got here. from a fellow learner.

u/road_to_life · 2 pointsr/learnjava

Depending on how much C++ you know, I believe it would be best to start with one of the introductory books and skim real fast through parts which are perfectly clear to you, as a learning resource I can suggest either: https://www.amazon.com/Intro-Java-Programming-Comprehensive-Version/dp/0133761312 I even decided to buy physical book in order to get all the extra content, if you finish that book from cover to cover, do all the exercises and do online quizes and read bonus chapters you will have I dare to say "godlike" foundation in JavaSE and some decent introductory JavaEE knowledge as well (bonus chapters), or if you prefer to read something a bit more modern (Java 8/9) I would suggest: https://www.amazon.co.uk/Java-Program-Early-Objects-Deitel/dp/0134743350/ref=dp_ob_title_bk

u/divpload · 2 pointsr/learnprogramming

I recommend this one : Introduction to Java programming. I used the 7th edition in university.

u/atech087 · 2 pointsr/computerscience

This is the book we're using at my university, this is only my second semester, but we're still using the book. It's pretty good and hits all the basics, it has a lot of good examples too that you can reference when you're coding. It is a bit pricey, but there are "other means of obtaining it" if you catch my drift. Good luck!

u/CreepyStepdad · 2 pointsr/learnpython

related question- I inherited a couple books, I could use some advice.

I'm about 2/3 through Think Python, I am working through the University of Michigan Programming for Everybody course (and the book: Python for Informatics) and the Rice University An Introduction to Interactive Programming in Python Part 2 (both on Coursera)

I inherited Introducing Python, Fluent Python, Python 3 Object Oriented Programming, and Effective Python

Which one should I jump into after I finish Think Python?

u/xPolydeuces · 2 pointsr/learnpython

My friend who was getting into Python recently asked me about the same thing, I've made some research and this was what I came with. Just for the record, I'm personally a book dude - can't really focus much when learning from Udemy courses and stuff like that, so I will only cover books:


First book:


Python Crash Course by Eric Matthes
Very solid position for beginners. The first part of the book covers Python's basics - data types, lists, functions, classes, pretty much everything you need to get a good grasp of Python itself. The second part of the book includes three practical projects, mini-game, data visualization and an introduction to making web apps with Django. From what I so, it's a pretty unusual approach to beginner friendly books, since most of them avoid using additional libraries. On the other hand, it's harder to get bored with this book, it really makes you want to learn more and more once you can actually see the effects of all your work.


Automate the Boring Stuff with Python by Al Sweigart
Best alternative if you want to spend 0 bucks or want to dive all into projects. Even though it covers basics as well, I still recommend to read it, even if you have done Python Crash Course before, even just for the sake of all those projects you can make to practice your Python. He also has a Youtube channel where he has a loooot of Python content and sometimes does cool things like streaming and helping people make their code better, really cool guy, be sure to check his channel!


Second book:


Writing Idiomatic Python by Jeff Knupp

Very solid book, filled with examples what you, as a Python developer should do, and what you shouldn't (and why not). Sounds like not much, but it is actually a lot of useful knowledge that will make your code shorter, cleaner and better.


Effective Python by Brett Slatkin

A bit easier to understand and easier to approach than a previous book, but still has a load of knowledge to share.


Third book:


Fluent Python by Luciano Ramalho

One of the best Python books overall, covers all of the things that previous books could have missed or didn't have time to introduce. My personal favorite when it comes to books for advanced Python developers.


All of those recommendations are my personal opinion, so if anyone has anything to add, I will gladly listen to any comments!

u/Anon_Logic · 2 pointsr/golang

I recently asked my Udemy instructor for some reading ideas. These are the ones I purchased.

Go Web Programming

The Go Programming Language

Go in Action

u/russoj88 · 2 pointsr/golang

The Go Programming Language (Addison-Wesley Professional Computing Series) https://www.amazon.com/dp/0134190440/ref=cm_sw_r_cp_apa_D9y7BbQRNKRQS

u/mrmonkeyriding · 2 pointsr/webdev

I buy books because they go into a lot more details, or often are written really well, and easy to follow. Also, it's really nice to read paper. Often I keep books in the office as it's a quick and reliable way to research a topic in-depth without scrolling through hundreds of shit articles on a particular (and even controversial subject).

I really recommend these:

High Performance MySQL: Optimization, Backups, and Replication - I've read snippets, but it's recommended a lot and very good for more advanced readers.

SQL Antipatterns: Avoiding the Pitfalls of Database Programming - VERY beginner friendly, easy to read, follow, provides real and common scenarios and explains the anti-pattern, it's problems, the reasons to sometime excuse their use, and solutions. I love this book.

The Go Programming Language - Very good read, not TOO technical jargon, very nice to read, explains in depth and in an understandable way.

I've had plenty more over the years, but these are my current I have at home. Still more on order. :)

u/akb960 · 2 pointsr/golang

An Introduction to Programming in Go by Caleb Doxsey

http://www.golang-book.com/books/intro

I'm not sure if one can go through it in 30 minutes though. It took me a long afternoon. Neither is it very comprehensive.


The best book in my opinion, however, is The Go Programming Language by K&D. Clear and crisp!

u/TracerBulletX · 2 pointsr/golang

I have a few recommendations from someone who started with go about 2 years ago. Get https://www.amazon.com/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440 book and work through the whole thing, then work with go for a little on something, then go find https://www.oreilly.com/library/view/ultimate-go-programming/9780135261651/ course by Bill Kennedy and go through the WHOLE thing. Also while you're doing that listen to the Go Time podcast, check out @francesc https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw youtube channel, and do some https://gophercises.com/ from @joncalhoun These were all the best things I found to successfully animorph into a gopher. Also mandatory recommendation to read the standard library source as you get into things and https://golang.org/doc/effective_go.html

u/aw4y_z · 2 pointsr/golang

I started with this book:

https://www.amazon.com/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440

very very good. And then a lot of resource around the web.

Then it depends on what kind of backend you wanna do. Have fun!

u/curiousGambler · 2 pointsr/learnprogramming

If you haven't seen, Kernighan is coming out with a Go version of the old classic (amazon)

Sans Ritchie of course, RIP.

Comes out in August. I'm totally getting it, just started learning some Go.

u/CapableCounteroffer · 2 pointsr/golang

You can read the go book which I think is a pretty good source. If you don't have the money for that I would do the go tour, read the Go language specification, and then read Effective Go.

u/Nzen_ · 2 pointsr/ProgrammingBuddies

In general, a library without a using-program driving it is apt to not serve any domain particularly well. I understand that this is a series of etudes rather than expected to become the next jquery. Nevertheless, typing these method names in context could serve as an opportunity to consider renaming them.

For example, the methods in search have a search in them. But, as a caller, I don't generally care how it's done. I do care what's returned, and doSearchXXX() doesn't communicate what the method provides to me. As a caller, I'd prefer dealing with something like

int knownHighScore = 3;
int[] scores = { 7, 8, 10, 3 }; // or from file
if ( Search.contains( scores, knownHighScore ) )
{
System.out.println( "Student "

  • (Search.position( scores, knownHighScore ) +1)
    +" has the high score" );
    }

    Methods like contains() and position() are clearer to use than doLinearSearch() and ... I'm not sure what you'd call the latter in the current scheme. But, internal to the library, you could distinguish between the different searches by having contains() call binary or linear based on whether the input is sorted.

    There are a number of ways to improve what you've published, but I'll emphasize using this library from something with a main() method.
u/javaxnerd · 2 pointsr/javahelp

> 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

I agree with this. Since 3rd edition is only a month away now after years of not knowing if/when there would be another edition, I'd probably say pre-order it and hold out for 3rd. But yes, 2nd has been a great help to me.

u/dtxvsk · 2 pointsr/cmu

Josh Bloch is co-teaching 214 this fall, and he wrote the book on Java programming, so it might be a good experience to take it with him.

u/Styrofoam--Boots · 2 pointsr/Ni_no_Kuni

Effective Java 3rd Edition by Joshua Bloch is wonderful:

https://www.amazon.com/Effective-Java-3rd-Joshua-Bloch/dp/0134685997

He helped implement features for the language when working at Sun and has also worked at Google. :)

u/-jp- · 2 pointsr/java

If you're studying Java specifically I recommend getting Josh Bloch's Effective Java. It explains the rationale behind literally everything I think I've seen in that ecosystem, and is one of the better programming books I've read in general.

u/balefrost · 2 pointsr/learnprogramming

I just want to point out something that's maybe a little beyond where you're at, but might end up biting you, so you might want to know about it.

In Java, all classes implicitly inherit from a class called Object. You don't need to do anything to cause this to happen; it's automatic. That class defines several methods, and because your class inherits from Object, you get those methods, too. One such method has this signature:

boolean equals(Object other)

That is to say, all objects in Java have an equals method that you can call, and you can pass anything at all as the argument when you call that method.

You are defining a different method with this signature:

boolean equals(LandTract lt)

As a result, instances of your class will have two different equals methods. You will get different behavior depending on which one you call.

Generally speaking, if you call equals yourself, it will pick the correct one. If you pass a LandTract as the argument, then it will call the "more specific" one (i.e. the one that takes a LandTract). If you pass something else - say a String - then it can't call the one that takes a LandTract, so it will instead call the one that takes an Object. (String, being a Java class, also implicitly inherits from Object).

However, there are common circumstances where the wrong one will get called. For example, any code that operates generically on objects will almost certainly call the equals that you inherited from Object. If you put a bunch of LandTract instances inside an ArrayList and then use indexOf to try to find one, you might be surprised that your equals(LandTract) doesn't get called.

In the book Effective Java, Josh Bloch argues (Item 10) that it's dangerous to create methods called equals that don't override the one from Object. It's easy to think that you've overridden that method, when in fact you've just provided an overload (a different method with the same name).

It's sometimes safest to avoid creating methods called equals unless you're overriding the one from Object.

That's already long enough, and I don't want to overwhelm you. If you want to know more, let me know.

u/OffbeatDrizzle · 2 pointsr/javahelp

Yeah, or if not just play around on your own with it for a weekend, it's pretty simple to pick up.

Something else I'd add to that list is dependency injection (which again might be covered under MVC-frameworks if they tell you about Spring).

Also, this is a useful tool for getting to grips with design patterns, and I can't recommend this book enough

u/rekt_brownie · 2 pointsr/programmingcirclejerk

I like https://www.amazon.com/Tour-2nd-Depth-Bjarne-Stroustrup/dp/0134997832/ref=sr_1_3?keywords=C%2B%2B+in+depth&qid=1562532539&s=gateway&sr=8-3, the Tour of C++.

I learned C++ in a really unstructured way, I learned C++11, and I basically just kept at looking at new proposals that were being introduced into the language and I was like hey these are pretty nice, I'll use them.

u/falllol · 2 pointsr/Turkey

genc kardesim C zaten valid C++ olmakta, yani yazidin C kodunu C++ compilerda da derleyebilirsin ornegin. O yuzden C++ ogrenmenin sana sadece artisi olur, birbirinden "temelde" farkli diller degiller ama C++ C uzerine performanstan feragat etmeden bir cok kolaylik getiriyor.

Fakat C++ ogrendiginde butun ozelliklerini kullanmak sacma ya diye dusunme. C++ bufe gibidir, butun ozelliklerini kullanmaya calisirsan corba olur her sey. Isine yarayan seylerini al.

Oyle kasmana da gerek yok sana ince bir kitap onerecegim, 2-3 gunde okursun, C++ ogrenirsin. C++ in mucidinin kitap, ve halihazirda programlama bildigin icin ogrenme probleminin %90'ini cozecektir. Bir hafta bilemedin iki haftada kompedani olursun cok kasmana gerek yok yani.

Kitap bu: https://www.amazon.com/Tour-2nd-Depth-Bjarne-Stroustrup/dp/0134997832

libgen'de de var indir oku bulamazsan.

u/danmarell · 2 pointsr/cpp_questions

These are some recent books by respected members of the c++ community.....

C++17 - The Complete Guide - Nicolai M. Josuttis https://leanpub.com/cpp17

Mastering the C++17 STL - Arthur O'Dwyer - https://www.packtpub.com/au/application-development/mastering-c17-stl

A Tour of C++ (2nd Edition) - Bjarne Stroustrup https://www.amazon.com/Tour-2nd-Depth-Bjarne-Stroustrup/dp/0134997832/

u/nikkocpp · 2 pointsr/france

( quand je dis HTML+javascript, c'est javascript le langage de prog.)

Si tu veux apprendre le C++, sous windows tu peux télécharger VisualStudio Community (je crois que c'est comme ça que ça s'appelle la version gratuite maintenant) de Microsoft et essayer.

Sur le net ya des tonnes de cours sur google, en français en anglais pour commencer. Il faut déjà pratiquer et mettre les mains dans le cambouis.

A savoir après des années de stagnation le C++ évolue (presque) vite, certains livres parlent de C++11 alors qu'on est au standard C++17 et bientôt C++20

Après, si tu veux vraiment apprendre des trucs pour :

https://www.amazon.fr/Programming-Principles-Practice-Using-C/dp/0321992784

https://www.amazon.fr/Tour-C-Bjarne-Stroustrup/dp/0134997832/

https://www.amazon.fr/C-Programming-Language-Bjarne-Stroustrup/dp/0321563840/

https://www.amazon.fr/Effective-Modern-C-Scott-Meyers/dp/1491903996/

Sans oublier sur le net les bonnes pratiques, à jour:

http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines

Et sur youtube il y a plein de vidéos aussi, et des conférences.

Et je conseille d'apprendre le C en même temps, parce qu'en C++ on utilise beaucoup de librairies en C.

https://www.amazon.fr/langage-2e-éd-Norme-ANSI/dp/2100715771

u/brandonhilkert · 2 pointsr/ruby

This isn't dedicated to algorithms, but I think of it in the same category. It's one of the few patterns books not in Java: http://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/0321490452

u/oaddit · 2 pointsr/ruby

Design patterns in Ruby is great for this. Much more lighter and entertaining than it sounds, and a fantastic introduction to both OOP design patterns and more advanced Ruby techniques.

u/djcp · 2 pointsr/rails

That article is specifically about legacy apps, and as such the good examples can be a little out of date. For instance:

class User < ActiveRecord::Base
scope :active, -> { where(active: true) }
scope :by_last_login_at, -> { order(:last_login_at) }
end

would just be:

class User < ActiveRecord::Base
def self.active
where(active: true)
end
def self.by_last_login_at
order(:last_login_at)
end
end

in a more modern codebase. Also, I think it's perfectly fine to use sql outside of models when you've extracted a bit of functionality into a service object. I think the nuance here might be articulated as "don't use sql in controllers, views, or other places it doesn't belong."

I agree with most of it, especially "extracting rake tasks to classes". If you're in the habit of extracting service objects to define interactions between things, you can frequently use these to make writing rake tasks easier, too and vice-versa.

Random things:

We created Hound as a hosted style checker, and I'm pretty fond of our guides.

I've worked on projects where we ran rubocop as part of a default rake. Took some care and feeding but it was handy.

You might also check out bundle-audit and brakeman.

Codeclimate does some very clever static analysis to find issues too, very worth it.

If you're looking for info about design patterns, I love Design Patterns in Ruby.

u/tatersnakes · 2 pointsr/ruby
u/InanePenguin · 2 pointsr/ruby

Are you looking for something to teach you specifically ruby syntax or something a little less syntax heavy? I'd HIGHLY recommend Design Patterns in Ruby by Russ Olsen.

It's answered so many common problems I have run into and have to work around. To me it seems like pretty advanced thinking/techniques but I'm not sure your level. Either way, it should provide some great insight! He dedicates a chapter to reviewing Ruby so maybe that would at least help some.

u/dacat · 2 pointsr/ruby

Ruby by Example

Design Patterns

Well Grounded Rubyist

by the time you finish those three.. you will know what you want to move to.

u/rebo · 2 pointsr/programming

I'd also recommend Design Patterns in Ruby : http://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/0321490452

It's very straight forward and readable.

u/Fsmv · 2 pointsr/gamedev

Please buy a book, I recommend The C++ Programming Language by Bjarne Stroustrup. I know it's kind of expensive, I never was able or willing to go through a real book a when I was first starting. But this site is quite bad at explaining anything and you won't get a good education from it. If you actually work through a textbook though you'll be much better at C++ than what you would get out of online tutorials.

Getting a formal education in programming has made a huge difference in my ability; what I learned online has helped in going through school but it's really no comparison in actual skill learned.

u/aLogicalOperator · 2 pointsr/learnprogramming

First off I messed with a lot of languages before I think I really grasped the basics. I'll note that I used some Qbasic and Lua before starting my CS degree but I don't think they taught me good fundamentals because they are a little more "simple" and left me confused looking at lower level languages which is pretty much anything else.

I just started my CS degree recently and finished the first class which was in C#. I felt like this language really gave me a better grasp on the fundamentals.

More importantly than the language though I'd say get yourself a good book. For my C# class we used this book which is really good but kind of expensive. If you are interested in C++ many people recommend C++ Primer or The C++ Programming Language.

In taking my C# class I realized I thought I knew a lot about the basics of programming but actually didn't fully understand some very basic stuff, even things I had used a lot before.

u/Steve_the_Scout · 2 pointsr/learnprogramming

I've been writing C++ for about three years now, so I'm mostly familiar with C++11 (one of the newer updates that added quite a bit of functionality and sort of "updated" the language to make it more modern), though there are definitely people with way more experience in it than me on here.

C++ is a language with a very steep initial learning curve that drops drastically once you understand the basic concepts and write a few programs to practice the concepts involved. If you feel like it's too difficult at some point, take a break, then come at it from a different approach (and of course write a few tests to make sure you're getting it). This applies to other languages almost equally, of course.

You should try to learn C++11 (and C++14, a minor update) more than older variations of the language because it added quite a bit to make it easier to read and write with.

Online guides for C++ tend to be outdated or just plain wrong, it's actually one of the few languages with that quality (although that's changing slowly). It's best to get a book like The C++ Programming Language or Programming Principles and Practice Using C++ (which I would recommend for you over the former, which is actually more of a reference book). By the way, they're both authored by the initial creator of the language, so they also explain some of the design choices and details of the language which may or may not help you better understand it.

Beyond that, just do what's suggested for any other programming language (look at references, read actual programs written in it, etc.)/

u/loamfarer · 2 pointsr/learnprogramming

The C++ Programming Language, 4th Edition - Bjarne Stroustrup
Effective Modern C++ - Scott Meyers
21st Century C - Ben Klemens
Learn You A Haskell For Great Good - Miran Lipovača
The Book & Rustinomicon - Rust Contributors
A Byte of Python - Swaroop Chitlur
Java The Complete Reference 9th Edition - Herbert Schildt

These are the books I got the most out of. None of them are good for beginners to programming, except maybe A Byte of Python.
But they have given me deeper essential knowledge over the tools that I'm working with than any sort of "zen of patterns" or "corporate feng shui" style book has offered.

Of course I have also come across other computer science books that are fantastic, namely AI and machine learning stuff. I know a handful of solid game engine and graphics books have also come out in the past few years.

u/thedracle · 2 pointsr/SaltLakeCity

Depending on what you want to learn, books are a very good resource.

The downside of many internet resources is they are sparse, and lack introduction to simple subjects.

Some of the most effective books I have found for really teaching you how to think like a programmer in various languages are:

u/rbartlejr · 2 pointsr/learnprogramming

I think a lot of it is subjective; one book is not going to destroy you as a programmer unless you rely on only one book. Most of the developers I deal with have a library of books. For C++ they have at least Stroustrup's C++ and the STL Library. They are both pending for new editions for C++11 so you might want to wait a bit.

u/ctangent · 2 pointsr/Python

You (the programmer) will be partially responsible for any memory that crosses from python to C/C++. Python does this by reference counting: https://docs.python.org/3.5/c-api/refcounting.html . It is your responsibility to increase/decrease the reference count of an object as it moves between python and C.

If learning C++ is your goal and you'd like to use Python while doing it, I'd recommend Boost.Python: http://www.boost.org/doc/libs/1_57_0/libs/python/doc/ . The tutorial is good, although it does assume that you have a basic understanding of C++: http://www.boost.org/doc/libs/1_57_0/libs/python/doc/tutorial/doc/html/index.html . I'd recommend reading a book if you want to dive into C++, such as http://www.amazon.com/gp/product/0321563840/ref=pd_lpo_sbs_dp_ss_1?pf_rd_p=1944687602&pf_rd_s=lpo-top-stripe-1&pf_rd_t=201&pf_rd_i=0201889544&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=1C9XVC14E3BDBBF8VKP5 .

u/pchiusano · 2 pointsr/programming

I'm not sure what you are asking for is possible. The difficulty is that you need to somehow express a type signature that is impossible to express in other languages, and there is no pseudocode convention for the concept! You could look at, say, the implementation of sequence, and know that it works for Maybe, Either, and lots of other data types that come equipped with a Monad, but that implementation and type signature is going to be greek to you if you don't know Haskell. So basically, you just have to "trust" that it is a similar sort of thing to other abstractions like IEnumerable or whatever--it saves you from having to duplicate code.

IMO the benefits of monads and other abstractions only become clear after you've used and written enough functional libraries to really feel the code duplication problem solved by monads and their ilk. Until that point, it's difficult to grok. I know this isn't all that satisfying. :(

I co-wrote a book on Scala and we decided to hold off on even mentioning monads until more than halfway through the book, instead focusing on getting the reader lots of practice with the functional style using concrete examples. By the time we finally do introduce abstractions like monads, the reader had lots of concrete examples and (we hoped) a gut feeling for the code duplication problem that needed solving. I think this worked reasonably well for people, but even then it is still a bit of leap!

u/gatorviolateur · 2 pointsr/mumbai
u/pmrr · 2 pointsr/bigdata

I wouldn't be scared of functional programming or Scala. If you've been writing PySpark jobs then you're probably using Python in a functional way itself. From the testing I've done with Spark and Scala it's almost impossible to not write functional Spark jobs as that's how Spark is designed. I would equally say a lot of Scala devs probably aren't using Scala in a purely functional way anyway.

I say just get stuck in using Spark/Scala based on your PySpark knowledge and see how far you get. If you get stuck and feel you need a cleaner understanding of functional programming / scala, try this book:

http://www.amazon.co.uk/Functional-Programming-Scala-Paul-Chiusano/dp/1617290653/ref=sr_1_3?ie=UTF8&qid=1451992580&sr=8-3&keywords=scala

u/ixAp0c · 2 pointsr/learnprogramming

Yes, it's possible, especially with something like Amazon where the syntax is relatively simple. If you view the HTML source for a page like this, and press CTRL + F (find/search page) and search for the price of the item ($59.87 in this case), you'll see that the price is in the HTML tag:

<span class="a-size-medium a-color-price offer-price a-text-normal">$59.87</span>

With a simple script in Python you could just pull the HTML from the web page, and parse the text for that sub-string and return the value after the substring. This script will read the HTML from the site:

!/usr/bin/env python

import urllib.request<br />


page = urllib.request.urlopen("http://www.amazon.com/item&quot;)
text = page.read().decode("utf8")

print(text)

You just need to add in a few lines to make it get the value for the item. You can use string indexing and slicing to pull the value out of the HTML tag, by doing something like:

priceStartOffset = text.find('"a-size-medium a-color-price offer-price a-text-normal"&gt;$' # Find string index where price starts
priceStart = priceStartOffset + 1 # Index where price begins (numbers)
priceEnd = priceStart + 4 # Index where price ends (other ways to implement, this is simple way)
price = text[priceStart:priceEnd] # Pull price substring out of HTML by using slicing
print(price) # Display the price

Once you have the price value you can do whatever you want with it, print it to the screen, save it in a file for later use/computation, etc. Note that this is just a basic example of pulling some data from an HTML page, the logic that you implement on that data is up to you.

If you want the program to collect the price every X amount of seconds, you could put the code that gets the price in a loop (a while loop would be good in this case), with something like the 'time.sleep(seconds)' at the bottom of the loop block, so you aren't collecting thousands of the same price value every minute.

Since you have little to no experience coding (and might not really understand any of what I just said unless you're already coding), I'd recommend you read a book like Head First Programming, which goes over the basics of programming using Python 3 (but the concepts can be applied to any language, Python was simply chosen for the examples).

u/jgcoded · 2 pointsr/orlando

Nobody can teach you modern c++ better than Stroustrup's book: The C++ Programming Language, 4th Edition

u/kanjibandit · 2 pointsr/rails

How well do you know Java? I suspect you may be overestimating the time to it will take you to get comfortable in Ruby. Learning your first language is always harder than the second, because you're really learning two separate things: 1) how to program, and 2) the language syntax. The second time around, it's largely just a new syntax. Most of your knowledge of how to code will transfer. True, Ruby will introduce you to new concepts, but I think you'll find them rather more like new superpowers than like new obstacles.

Specific recommendations:

For Ruby, I like the book Eloquent Ruby

For Rails, I like Michael Hartl's Rails Tutorial

For fun and practice, look at Ruby Koans

u/vaxinate · 2 pointsr/ruby

this is kind of a silly book, but it's about ruby. and pretty entertaining honestly. Why's Poingniant Guide to Ruby

EDIT: i hadn't read this in a long time so i was skimming it, but seriously if you can get past how out there the book is, its honestly a pretty legit way to learn ruby.

EDIT AGAIN SHIT: also Eloquent Ruby

u/[deleted] · 2 pointsr/ruby

sorry to hear you're having trouble; i get my ass kicked all the time.

if programming languages were like poems, i'd liken things like C# to an epic and ruby to a haiku. both are packed full of meaning, but the approach toward expressing it is radically different (imho: just an impression, keep the hatches battened down). the ruby community focuses very much on readability, in the sense that code sometimes reads more like pseudocode, or even just regular text, than i've seen in other lanaguages. this focus on readability is tightly coupled with a preference for terseness wherever and however possible: things like dry (don't repeat yourself), etc. are heavily emphasized.

sometimes it feels to me like i'm meeting a new person when i learn a new language, tool, etc.: it can go well or poorly, but regardless it takes a while to learn each other well enough in order to communicate effectively. the only way to expedite the process is familiarity. if familiarity is in short supply, patience appears to be the only way forward. disagreements will arise, but i try to look at those as opportunities to potentially broaden my perspective.

i'd recommend just taking some time in a low-pressure environment to work through some examples (small, easy ones just to get the feel for it) and read things like the pickaxe or the ruby way. eloquent ruby is on my reading list as well.

as far as editors go, i tried aptana (eclipse), rubymine, etc. i finally settled back on vim, with a few plugins to help along. so far, i've got pretty much everything i need out of an ide - granted, i do tend to use nix as an IDE. if you'd like some more information on that, here's a blog post i wrote a while back about my setup then. it's for ubuntu, but some of the gems, etc. it references may be helpful. of particular note is rubocop, which is a linter for ruby. about the only things i don't have via vim (either as part of default vim or via plugin) is code-completion (honestly don't use it that much) and a built-in debugger (again, nix as an IDE, plain old ruby debug gets me by. yes, pry. i know.). for built-in debugging, there's vim-ruby-debugger, and for autocompletion there's youcompleteme. i haven't personally used those plugins yet, but they're on my list to try out. there are probably others as well.

hope this helps.

u/DudeManFoo · 2 pointsr/ruby

Most of us started this way... if not with Ruby then another language...

Then you get more experience and start writing better code... some of the shortcuts take a while to get...

This book has quite the collection and is pretty much how most of us do it...

EDIT : OOPS... wrong book... that is a great one, but I meant this one for your level

u/aparadja · 2 pointsr/ruby

Eloquent Ruby is one of the best programming books I've ever read. I highly recommend it. It'll get you started quickly with the basics, and then make you fall in love by showing the simple and powerful beauty of the language's design.

The poignant guide (the cartoon fox thing) is funny and smart, but Eloquent Ruby will make you really grok Ruby.

u/pornlord · 2 pointsr/learnprogramming

Depends what you want to do in long run. If you are interested in System administration or networking, learn Perl.

If you just want a job and learn a cool scripting language, go for Python. Since you have done Python, it should not be hard for you to pick up. Start with this, that would be my advice.

If you are looking for web development, go for Ruby. Ruby is a bit more object oriented than Python or rather too high level abstraction. So to appreciate Ruby code and exploit its abstraction and not get overwhelmed, it would do good, if you did Python at first. It will make learning or appreciating Ruby easier. It will be a good foundation to learning Rails, a web framework. Do, Ruby if you are interested in web development and so holds for Python. Anyways Ruby is fun to learn. If you are comfortable with Java and just want a quick start, I recommend eloquent ruby.

You may have programmed in C++ but going back from Java, you may feel awkward. I will put the C++ as the last language in the list of priority of learning.

So in order of prioritising what you want to learn, my list would be

  • Python
  • Perl / Ruby depending on whether you like networking or web applications.
  • C++

    On a side note, if you are going for software engineering. It does no harm to learn another paradigm. You are only familiar with object oriented and procedural paradigm. If you are interested in broadening your SE skills try to sharpen up on functional programming. Haskell or Clojure (JVM implementation of Lisp and somewhat favoured by web developers) are good starting points.
u/Slackwise · 2 pointsr/programming

If you want more guidelines and a further understanding of Ruby idioms, take a look at Eloquent Ruby.

u/Uberkraft-Z · 2 pointsr/webdev

Thanks for the feedback, means a lot! Michael Hartl's tutorial really got me going with Rails. After going through that tutorial, I played around with a personal project that was structured very similar to just-eat. Once I had a pretty decent understanding of rails I read Rails Anti-Patterns. I highly recommend those two resources as they are both written very well. Everything I used for this site is: Ruby on Rails, JavaScript (and jQuery), BootStrap and SASS. Let me know if you have any further questions. Glad to hear you signed up, hope you enjoy the site!

u/HumanSuitcase · 2 pointsr/learnprogramming

With c++ you're probably going to have to get a pretty thick book for it. Don't let this derail you from doing it. In fact I highly suggest learning lower level languages first. Specifically C but C++ is probably a good middle ground if you're going to other languages like java. I recently went back to University to learn CS/IA. Most of the programming that I've "learned" at University is based strongly off of C and because of my strong programming experience in C since I was about 14 I've had literally zero problems getting full points on all of the assignments I've submitted for grading up to this point. Now, the downside to almost a decade of on and off C experience is that I pull so much from C that it makes Object Oriented Programming like java some what of a mind bender for me, but for the most part I can get through it pretty easily.

I recommend Stephen Prata's C++ Primer Plus (only because his C primer is absolutely fantastic) He relates things really plainly and meets students on their level in regards to really difficult concepts like pointers.

u/Rome37 · 2 pointsr/cpp_questions

Personally i had to use this book for my college: https://www.amazon.com/Programming-Problem-Analysis-Program-Design/dp/1337102083/ref=dp_ob_title_bk I found it very informative and helped me a lot if i actually read the book as well as practiced the problems that it gives you at the end of each chapter. I also have this book: https://www.amazon.com/Primer-Plus-6th-Developers-Library/dp/0321776402/ref=sr_1_2?keywords=c+%2B%2B+primer&amp;qid=1557549048&amp;s=books&amp;sr=1-2 that i used for personal use, it goes into a lot more detail and also helped me better understand topics. Both books provide with correct syntax and practice problems. Hope this helps.

u/RexDaemonia · 2 pointsr/hacking

I second Python as a great beginner language.

Here you go /u/moonknightspidey - http://learnpythonthehardway.org/

You don't have to buy the book, it's available through the web site for free. If you prefer a physical book: https://www.amazon.com/Learn-Python-Hard-Way-Introduction/dp/0321884914

The person I'm replying to also recommended Ruby. Zed Shaw also wrote a ruby book.

Online (free): http://learnrubythehardway.org/book/

Print: https://www.amazon.com/Learn-Ruby-Hard-Way-Computational/dp/032188499X

And if you're feeling crazy then you can learn you a haskell (don't do this).

Bookmark these for when you get into C later:
http://c.learncodethehardway.org/book/ Same guy who wrote Learn Python the Hard Way. The online (free) copy of Learn C etc is incomplete, but is now available in print in full: https://www.amazon.com/Learn-Hard-Way-Practical-Computational/dp/0321884922

Then there's beej: http://beej.us/guide/

And the obligatory TCP/IP book: https://www.nostarch.com/tcpip.htm

If anyone's wondering about why I just spammed the shit out of Zed Shaw's books, it's because his writing style is very easy to get into and keeps your attention. It's anything but dry, and focuses on making you write code, break it, and figure out why it broke.

There are other good Python books as well, like this one: https://www.nostarch.com/automatestuff

And here's another No Starch book on Ruby (I like No Starch - Absolute OpenBSD is a great reference) - https://www.nostarch.com/ruby

u/supra621 · 2 pointsr/learnprogramming

Learn Python the Hard Way was recommended to me by one of the tech managers I work with. Note that I haven’t read it yet, but it’s on my list per his recommendation.

Edit: it’s late and I formatted the first link backwards.

u/RodionGork · 2 pointsr/learnpython

Well...

http://www.amazon.com/Learn-Python-Hard-Way-Introduction/dp/0321884914

However you'd better get used to work with documentation in electronic form. Besides other thing it allows you fast browsing and searching over the text.

u/ThingsOfYourMind · 2 pointsr/learnprogramming

if you could save up for C++ Primer, its really a good book on C++, I can't recommend it enough.
But for the 15 euro price range, perhaps the A Tour of C++ a book written by the language creator himself.

u/huike · 2 pointsr/cpp

I recommend you watch this video:

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

and read this book:

http://www.amazon.com/gp/product/0321958314/ref=ox_sc_act_title_3?ie=UTF8&amp;amp;psc=1&amp;amp;smid=ATVPDKIKX0DER

My personal advice to you is to just start programming. Pick a slightly ambitious project and work really hard on it, that's the best way to learn. Ignore people who tell you that there is only one way to write code and if you don't do it their way you're doing it wrong. Programming shouldn't be that complicated (and it doesn't have to be).

u/ztherion · 2 pointsr/learnprogramming

The C++ Programming Language is a good reference. If you want something more beginner friendly, C++ Primer is good.

u/minno · 2 pointsr/learnprogramming

If you mean a comprehensive book by the creator of the language, then Stroustrup's The C++ Programming Language is it.

u/PrisonerOfLife · 2 pointsr/cscareerquestions

Go finish up the EE degree.

The skills you learn are mostly transferable to an SE/programming career and you get to learn about important hardware abstractions that CS people often take for granted. I'm interning in a C++ job this summer and everyone on the software team has a CE/EE background; I'm the only person I know whose academic field was pure CS.

Also, buy this book and start reading it. Electrical Engineers who know how to code C++ are a seriously invaluable commodity in today's job market.

u/gheradel · 2 pointsr/xboxone

I was never really interested in AR and then I read these two books. Freed is the sequel and is when you really get into a lot of really cool AR stuff.

http://www.amazon.com/Daemon-Daniel-Suarez/dp/0451228731

http://www.amazon.com/Freedom-TM-Daniel-Suarez/dp/0451231899

u/searstream · 2 pointsr/Bitcoin

You should read Daemon. Those are some glasses I could get behind.

u/greatAlexander · 2 pointsr/transhumanism

http://www.amazon.com/Daemon-Daniel-Suarez/dp/0451228731

That two part series has a lot of things like this. Virtual objects interacting with the real world etc... Definitely a neat idea and a good read.

u/adnanrk2175 · 2 pointsr/audiobooks

Daemon by daniel suarez. An excellent techno thriller.

https://www.amazon.com/DAEMON-Daemon-Daniel-Suarez/dp/0451228731

u/SpagNMeatball · 2 pointsr/AskMen

Daemon and Freedom. Great books about a game developer that dies and leaves behind a Daemon that does some cool stuff (no spoilers).

Highly Recommended if you are a tech/geek/science/internet fan. It is based in the real world, current time and technology so it is really believable.

u/Liquidretro · 2 pointsr/AutoDetailing

Haha well it's more than that. I have listened to more of the best sellers or other series I am interested in. I recommend this one for a tech thriller http://www.amazon.com/Daemon-Daniel-Suarez/dp/0451228731

u/gary1994 · 2 pointsr/JordanPeterson

I think you missed my point.

I'm not worried about AI becoming independent. I'm worried about how people will use it as a weapon against other people.

I don't know if you've ever read Dune but that is why Machine Intelligence was outlawed in that Universe. The prequels (Butlerian Jihad) were written by someone else, but based on Frank Herbert's notes. The writing isn't near as good as Herbert's but the outline of the story is what he intended.

Basically human civilization allowed itself to become dependent on AI, and then a group of about 20 people used that dependence, hacked the systems and turned them against everyone, using them to conquer all the dependent worlds.

These two books are science fiction, but they give an idea of how AI controlled cars could be used as weapons.

https://www.amazon.com/DAEMON-Daniel-Suarez/dp/0451228731/ref=sr_1_3?ie=UTF8&amp;amp;qid=1491424210&amp;amp;sr=8-3&amp;amp;keywords=daniel+suarez

https://www.amazon.com/Freedom-TM-Daniel-Suarez/dp/0451231899/ref=sr_1_5?ie=UTF8&amp;amp;qid=1491424210&amp;amp;sr=8-5&amp;amp;keywords=daniel+suarez

u/JakeFrmStateFarm · 2 pointsr/WritingPrompts

Daemon is also very similar.

u/faloompa · 2 pointsr/blackmagicfuckery

This is how the motorcycles with katanas from Daemon are created.

u/fletch407 · 2 pointsr/booksuggestions

[Daniel Suarez] (http://www.amazon.com/Daemon-Daniel-Suarez/dp/0451228731) is considered the heir apparent right now.

u/eliazar · 2 pointsr/Bitcoin

I fully share your interest in trying to find stories, narrative or scenarios featuring cryptocurrency. My personal conclusion is that the future got bigger and different after bitcoin, in ways that were considered practically impossible before, and we will need a new generation of science fiction.

While Neal Stephenson's Cryptonomicon, which I have only skimmed, deals with crypto-currency it is NOT the descentralized kind, which is in my opinion the truly revolutionary aspect of bitcoin.

The more suggestive work I can think of is Daniel Suarez's Daemon and the sequel, Freedom, which don't deal directly with cryptocurrency, but the whole conceit of the books --a self-sustaining civilization-altering program unleashed after the death of its author-- is curiously homomorphic to bitcoin.

It's not fiction, but I like David Friedman e-money scenarios in his 2008 Future Imperfect: Technology and Freedom in an Uncertain World. He writes just before bitcoin was unleashed unto the world!

Cory Doctorow's Down and out in the magic kingdom deals with Whuffie, a reputation-based "ambient" currency for a post-scarcity economy. The interesting part is that with colored coins, it could be very much implemented with bitcoins.

u/Herxheim · 2 pointsr/WTF
u/agent_of_entropy · 2 pointsr/suggestmeabook

Daemon and Freedom™. They're techno thrillers.

u/TechStudent007 · 2 pointsr/QualityAssurance

Thanks for the compliment! and compliments right back at you Sir, for your hard work doing all that on evenings after work. I never had enough energy to get past Hello World doing that. Instead I straight up quit manual QA, moved back home, and am doing oddjobs for cash while I study 40 hours a week.

I spent 5 years in manual QA at Blizzard and Microsoft going absolutely nowhere making shit money and getting pissed on by everybody else there as the lowest man on the totem pole- getting a paycheck that was 30%-40% of what everyone else in the Corporation was making despite me grinding away the same 50 hours a week same as devs, producers, artists, and marketing people. Even when I finally made Test Lead, I was in shock to realize I was still lower paid and less respected than the secretaries and parking lot security guy.

I realized the only way I was ever going to make a liveable paycheck to accomplish my dreams of home ownership and having children was to get out of that toxic lifestyle, and get job as a Dev or TestDev.

It's not easy but it's doable yourself. I'm particularly fond of Jon Sonmez inspirational videos, Brian Duggan uni lectures and RB Whitaker's textbook for Year One of C# programming. It's a wonderful regimen.

u/UK_Dev · 2 pointsr/learnprogramming

The C# Player's Guide (2nd Edition) I can recommend highly!

u/seigneur101 · 2 pointsr/gamedev

Oh yes they are. The last one I had (the one that passed in April) was by far the best cat I've had.

I looked at all the engines available, and I decided I would use Unity. I used to do Java, but never did any C#, but when I started I'd read some C# scripts and they were basically the same as in Java, so I figured I could learn it.

I read one for Unity, and one for C#.

Here are the links to the books I've read (they're from amazon.ca because I'm a frog/canuck):

https://www.amazon.ca/dp/161729232X
https://www.amazon.ca/dp/0985580127

I've also changed jobs in October, a job in which I'll do programming. So I've read other books in the past few months pertaining to development in general, not just games. (Long story short: I've studied actuarial sciences, always have had a keen interest in IT, and I got hired at a consulting firm where they hire actuaries to do some of their IT development).

I tried to learn Gimp and Blender, but I can't seem to transform into an artist overnight lol :P

u/thrashpvp · 2 pointsr/learnprogramming

It's gonna be a lot of effort on your part. I'd say just go through one of the many C# books.

Apparently these are good:
https://www.amazon.com/C-6-0-NET-4-6-Framework/dp/1484213335/ref=sr_1_1?ie=UTF8&amp;amp;qid=1500149805&amp;amp;sr=8-1&amp;amp;keywords=c%23+framework

https://www.amazon.com/C-Players-Guide-2nd/dp/0985580127/ref=sr_1_2?ie=UTF8&amp;amp;qid=1500124248&amp;amp;sr=8-2&amp;amp;keywords=c+players+guide

You can look for more resources on /r/csharp. I don't know much about C# so I can't really speak much about it. I think you should think less about learning exactly what you need for this project but more about learning C# in general. That way, you can tackle on other projects as they come in the future. With the knowledge you learn, you will slowly get to understand how to make your own version of stopping ethernet, blocking apps from opening, and eventually you incorporate all of them into one program that will be your finished product.

u/thepetek · 2 pointsr/csharp
u/cobaltgnawl · 2 pointsr/HytaleInfo

Oh I think I know exactly how you feel, maybe not actually on the verge of doing anything you cant regret, but a stagnate existence that makes your mind wonder.


This definitely got the water moving in my life again.
https://www.amazon.com/C-Players-Guide-3rd/dp/0985580135/ref=sr_1_16?ie=UTF8&amp;qid=1549137708&amp;sr=8-16&amp;keywords=c%23+book
This is the book I went with to start out, albeit mine was second edition. Just throwing this out there to make starting a little easier, that's the hard part.

u/the_nicomachean_man · 2 pointsr/learnprogramming

The Yellow Book (it's free).

C# Player's Guide

If you want to develop games with C#, then you'd probably end up working with Unity. The simplest thing to do is go through Unity's free tutorials.

There's also a Unity course on udemy.

As for a laptop, I'd probably ask /r/SuggestALaptop

You can get a low end Lenovo or HP laptop for around $180 to $220.

u/PixelPartisans · 2 pointsr/learnprogramming

I honestly recommend The C# Player's Guide 3rd Edition

The way the code is presented and explained I think is one of the best out there, with challenges at the end of almost every chapter. There's a healthy amount of theory and programming with the author also having a good sense of humor without overdoing it. It'll get you through the basics and even a little more advanced material.

u/rby90 · 2 pointsr/gamedev

I suggest Unity (larger pool of resources and books over unreal) and two books to get started.

  1. The C# Player's Guide
  2. Unity in Action
u/alleystraycoder · 2 pointsr/C_Programming

Well, I'm a little afraid to recommend this book to you since it doesn't hold your hand if you're a first time programmer. But since you have a little Python knowledge in your head, try taking a look at a book called "Head First C." If you follow along with the book, do every exercise, and complete the labs, I think you'll come out ready to tackle the world like a 240-pounds football linebacker.

u/nickdesaulniers · 2 pointsr/programming

I've read almost all the books on C. I think you can get by with just:

  1. Head First C
  2. Expert C Programming: Deep C Secrets
u/trytodothis · 2 pointsr/gis

I think the answer to your question is "yes" (I think--question has awkward wording), to a certain degree. Page 39 of the book Python Scripting for ArcGIS explains Python vs ModelBuilder well enough. I'll try to summarize:

  • Some lower-level geoprocessing tasks are only possible in scripts (i.e. using cursors to manipulate rows in an attribute table).

  • Scripting allows for advanced programming logic such as error handling and more advanced data structures

  • A script can run outside of ArcGIS; a ModelBuilder "script" cannot.

  • Scripts can be scheduled to run, Models to my knowledge, can't.

  • ModelBuilder "models" cannot be intergrated with other software.

    In general, a script allows you more flexibility in both where/how/in what situation you need to use it. Creating a model in ModelBuilder and then converting it into a (python) script can give you the framework/basic idea of how a process may need to be automated.
u/mapImbibery · 2 pointsr/geography

tl;dl - GIS is here to stay, learn computer skills, and consider where you want to apply your skills.

I just graduated with a BA in Geography and I kinda feel bad for those few students that dodged any GIS classes. It seems to be where geography is going, if not already there, so make sure you at least take the intro course. If GIS is what you decide to focus on, it is an ever-and-rapidly-evolving thing so computer languages are more frequently required by employers (check out r/gisjobs). My department focused on python and my prof was super stoked about this book.
I have one regret, and that's not minoring or double majoring in biology. I took a biogeography course (distributions, island biogeography, etc) and a pyrogeography &amp; fire science course. Biology would have really given me nice credentials to apply GIS to specific things a "geographer" or "GIS analyst" might not have the credentials for.
Have fun and embrace your inner geonerd!
(editted: manbearcat might like the python book I mentioned.)

u/tkellogg · 2 pointsr/programming

I think you're entirely correct about this. There is definitely a lot of value in being precise in our words. Paul is an exceptional writer - very experienced and accomplished in writing with great precision. His book about functional programming is one of the best books I've ever read, period. Believe me, he understands your point very well.

However, this kind of writing is not fun and we end up sacrificing true innovation for the sake of "correctness". I've spent a lot of time blogging. All of the high-traffic posts I've written received the same kinds of nitpicking that Paul is writing about. I've noticed that I now spend a lot more time revising my words - and with each revision the words become tamer and tamer until there's often no real substantial content left. At this point, the joy of writing is gone and it feels impossible to explore the interesting topics that make programming fun. Often I don't even post my writing because the painful thought of the unsubstantial nitpicking feels like a bigger burden than the joy that comes from expressing the ideas.

I wonder how many great ideas never made it into the public light due to fear of this type of nitpicking. I understand the quality impact of nitpicking, but I often wonder if the cost is greater than the value.

u/CinnamonHeart · 2 pointsr/learnprogramming

Read books! Implement small projects.

Underscore.io recently open-sourced all of their books. Essential Scala is quite good imo: http://underscore.io/books/essential-scala/

Another great book is Scala for the Impatient, but it's more of a crash course in scala than a book on FP in scala.

If you want a great book on functional programming as an idea, 'Functional Programming in Scala' is great. It's not really a book on how to program in scala, but more of a general FP book which happens to be in scala. Many of its ideas can be translated into C#.

Underscore.io's other book, Advanced Scala With Cats is good too, but imo should wait until you've read 'Functional Programming in Scala'.

u/no_life_coder · 2 pointsr/androiddev

Kotlin in Action seems to be the best reviewed on Amazon. I believe that anything specific to Android and Kotlin is not necessary since they're separate things that will convert pretty seamlessly. As for learning Kotlin, I'd recommend the Kotlin reference and good ol' google for any questions you might have. For a tutorial type series, Kotlin koans seems to be the best bet.

I personally came from Java then Swift within the last year. Kotlin so far has just been trial and error but not terribly difficult. If you want to buy a book to help with Kotlin, I'd do the koans series then buy something for functional programming. Possibly Functional Programming in Scala or the Java book from the same publisher. I've read a lot on functional programming and some stuff on lambda calculus. Outside of picking up haskell, just programming it the best you can and learning some of the basics from something like the funfunfunction series then build from there. Books can tell you theory but program design comes from experience.

EDIT: One thing that hasn't been inherently obvious so far was lambda expressions in Android. They seem like a powerful way to get things done effectively. Make sure you're using them when it seems appropriate.

u/dzjay · 1 pointr/learnprogramming

I plan on doing this, but for the fourth edition.

u/chris-herring · 1 pointr/learnprogramming

There are great Ruby books that aren't aimed squarely at newbies. Just a couple are:

Practical Object-Oriented Design in Ruby is excellent.

Eloquent Ruby is great as well.

u/michellemustudy · 1 pointr/ruby

I’ve heard great things about The Odin Project.

Aside from Sandi Metz book, I personally learned a lot from Russ Olsen’s book Eloquent Ruby.

u/hc5duke · 1 pointr/ruby

+1 for Ruby Koans.

I also recommend Eloquent Ruby to anyone starting out in Ruby and/or Rails.

u/Delthram · 1 pointr/rails
u/chadcf · 1 pointr/web_design

If you're looking for more than tutorials or picking up a project as a learning experience, Code Complete by Steve McConnell and (though getting a bit dated) The Pragmatic Programmer are classics in improving your development skills. I'm also looking at Clean Code next, looks very useful for those of us in the trenches who often have to throw out some code with limited time and ever changing requirements.

Also if you're going to be digging into any rails stuff by chance, I can highly recommend Rails AntiPatterns as a great reference for more than the basics, as well as the Destroy All Software podcasts (which cover more advanced topics than most podcasts).

u/misplaced_my_pants · 1 pointr/AskAcademia

I was on my phone earlier so here are some reference links.

Highly recommended programming books.

MIT has an Intro to Programming course online. They teach it in Python. Here's a decent book to teach you Python, and be sure to check the sidebar in /r/Python for more suggestions.

Project Euler is a great way of trying out new languages when you've learned a bit more.

When you can write competently in Python and are ready to move on, here are two highly recommended books on C++. The reason I've suggested C++ is because it's what ROOT is written in.

As far as math goes, use Khan Academy to supplement your lectures your first two years. In conjunction with the tips outlined on the blog I linked you earlier, you will destroy your math classes.

u/haseeb93 · 1 pointr/cscareerquestions

Here's what i did when i was in the same situation as you.

Bought C++ Primer Plus. As soon as i finished the around 300 Pages (Just before the OO concepts begin) i started solving problems from ProjectEuler.net

I've finished 20 of them so far..then i got busy with my Exams.

C++ Primer Plus (6th Edition) (Developer's Library) [Paperback]

The open source, cross platform, free C, C++ and Fortran IDE.

Project Euler

u/colonelflounders · 1 pointr/learnprogramming

I haven't done much with C++ so I don't know how much has changed. Everything that was part of the ISO 98 standard should still be applicable though some bits may have been deprecated since 2011. As far as idiomatic C++ goes, I don't know if that has changed much either. I own the fifth edition of this, which helped get me started with programming in general. I never ended up finishing it, but it was pretty good. My one complaint is the chapters can be super long.

u/asimshamim · 1 pointr/learnprogramming

This is a pretty well regarded book.

It was the book they used in my C++ course in my Object Oriented Course Sophomore year.

/u/CS_noob_student posted a list that include this!

u/PageFault · 1 pointr/programminghelp

C++ Primer by by Stanley B. Lippman, Josée Lajoie and Barbara E. Moo is most likely what you are looking for.

Edit: Note that C++ Primer Plus is not the same book and is not as commonly recommended.

u/wortexxxsvk · 1 pointr/learnprogramming

Oh so maybe that's why I was confused.

&amp;#x200B;

Here is link where I found 6th edition with a lot of reviews.

https://www.amazon.com/Primer-Plus-6th-Developers-Library/dp/0321776402/ref=sr_1_2?keywords=c%2B%2B+premier&amp;qid=1556996326&amp;s=gateway&amp;sr=8-2

u/d_clef · 1 pointr/jobs

There's tons of resources online, and it's a huge subject domain. I suggest you start by teaching yourself C++, if you can manage that you'll have no problems in the field. I strongly recommend getting a book to work through. Something like C++ Primer Plus should do you well, by covering the language completely, and providing exercises to actually write some code (extremely important).

From there you will get a sense if you like the field enough to continue.

26 is not too old. I started programming at that age myself, with an arts background. One thing led to another, and I picked up a second Masters Degree in CS, and then a very high paying job in NYC as software developer. So I like to think that if I can do it, so can most people - but it was very hard work! Don't underestimate that part.

I suggest you try out C++ for a couple of months, and see if you enjoy building software. Once you start working with classes (a concept in software development), and recursive data structures &amp; algorithms, you will begin to see the elegance that can be expressed with software. It's pretty cool.

Plus, the software industry is incredibly diverse - you could go on to work for NASA, Wall Street, Government, Medicine, University, Gaming, to name a few.

u/Arisu_Mizuki · 1 pointr/PS4

Are you an engine programmer or gameplay programmer? If not, I encourage you to pursue it as a career option.

I say this because your comment expresses some pretty passionate opinions regarding how games should allocate their CPU processing tasks. If you are not currently working as a programmer in the games industry, and if this is truly your passion, there is truly nothing holding you back from achieving your dreams. Thankfully you have many free tools available to get started prototyping your own games using Unity, Unreal, or other engines. If you want to work as a game programmer, I suggest studying C++ at your earliest opportunity, and I recommend the book C++ Primer Plus as a decent place to start.

u/bremon · 1 pointr/learnprogramming

I have always liked C++ Primer Plus. He just came out with the 6th edition and it has been updated for the C++11 standard.

u/Bashota · 1 pointr/cpp_questions

OK, I put up some of the directions that should clear it up. It is basically one of these cheats for words with friends or scrabble. You input letters and it searches a file for matches based on what you entered.

Yeah, our book has some C++11 stuff, but not a whole lot. I am reading C++ Primer Plus along with what we are going over in class. So I definitely will update my knowledge! Thanks!

u/EulerTheToiler · 1 pointr/learnprogramming
u/fancysuit · 1 pointr/learnprogramming

The amazon reviews 6th Edition seem fine. The only 1 star rating it has says that the book doesn't start off basic enough. The 2 star ratings complain about font size and typos. As one reviewer suggests, get the reprint to avoid all the typos.

Other than that, I don't see why people don't like it. If you feel so included, the sidebar has some book recommendation possibly for the future.

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&amp;amp;

What do you recommend?

u/yyzdslr · 1 pointr/learnpython

If you are a beginner coder like myself (someone who procrastinates and is distracted very easily, most of the time by random subreddits :) This method of learning python has helped me tremendously:

  1. Find your nearest book store and locate a copy of ['Learn Python the Hard' Way by Zed Shaw] (http://www.amazon.com/Learn-Python-Hard-Way-Introduction/dp/0321884914)

  2. Find a nice comfortable spot in the Bookstore (DO NOT connect to the wifi)

  3. Go through 5-7 exercises a day initially and then set your own pace as you pick it up.


    Shaw does a great job at breaking it down into small chunks to consume and a lot of repetition typing code so you get familiar and comfortable before he moves on to more difficult concepts; at which stage if you follow the exercises and do the study drills the concepts should be easier to understand.

    Learning python the hard way actually turns out to be the easier way in the end
u/stbernardy · 1 pointr/ITCareerQuestions

Security is interesting, I would start watching DefCon videos on youtube... A good book for self-study on programming (Python) is Python The Hard Way.. I taught myself with that book.

https://smile.amazon.com/Learn-Python-Hard-Way-Introduction/dp/0321884914/ref=sr_1_1?ie=UTF8&amp;amp;qid=1483465847&amp;amp;sr=8-1&amp;amp;keywords=python+the+hard+way

u/whattodo-whattodo · 1 pointr/learnprogramming

If it has to be a book, my only advice is do the opposite of what I did. I got Learning Python, 5th Edition, which is a huge, dry book. It's great, but it was daunting &amp; more than was even good for me to know about at the time. I would suggest any guide meant for beginners.

I should mention that Learn Python the Hard Way &amp; Automate the Boring Stuff with Python are the standard suggestions. I still suggest a beginner's book, but this is what the community likes.

That being said, I usually insist that people follow this order.

1) CodeAcademy's course on Python

a) It only teaches you things that are essential.

b) It provides you with an editor &amp; a runtime environment. These two steps may become a little confusing later, but it's good to not have to tackle them all at once.

c) It provides training that is still hands on

Note: I specifically suggest doing the course more than once. As many times as needed to feel excruciatingly bored and unchallenged by it.

2) Lynda's Learn Python 3 Standard Library. It is free through the Public Library. It is a series of videos so it is not hands on, but it helps you see what is possible before you're able to write it. Knowing what is possible is a big part of the process. Once you know what is possible, the how is often mostly irrelevant &amp; figured out with Google.

Note: I specifically suggest watching the videos more than once. As many times as needed to feel excruciatingly bored and unchallenged by it.

3) Only here do I usually suggest a book. Any book will do, but once you're swimming in ideas &amp; have been prepped &amp; re-prepped. You should be ready to go.

There is a very good chance that installing Python, picking en editor &amp; running the code will give you a hard time. Python is a pain to set up in Windows the first time you do it. Though, if you're running Linux, it's seamless. Once you get here reach out to me (or /r/learnpython). There are some tricky steps, but once you're up and running, you won't look back.

Good luck. If you have any trouble with any part, shoot me a message.


Edit: I like this guy's setup too. https://www.reddit.com/r/learnpython/comments/6f7ybq/_/dig45b0?context=1000

u/DoktorRF · 1 pointr/learnpython

Learn Python the Hard Way was written a long time ago. The most recent edition of the book was released about one year ago. Since then, many of the top downloaded packages have been updated to support Python 3: currently 165 of 200 of the top packages support it.

There isn't a strong reason for beginners to start with Python 2, unless they absolutely need a Python 2-only package.

u/emdeka87 · 1 pointr/cpp
u/1Bad · 1 pointr/cpp

A Tour of C++ comes highly recommended for beginners

u/-lq_pl- · 1 pointr/Cplusplus

It does not seem like a good resource to me. It assumes you already know a C-like language and it starts by complaining that C++ is an oversold language and we should all program in Basic. I am only exaggerating a little. It lacks the insight that people like Meyers, Sutter, Alexandrescu or Stroustrup provide. Better learn from the man himself: https://www.amazon.com/Tour-C-Depth/dp/0321958314

u/s_ngularity · 1 pointr/arduino

Stroustrup's A Tour of C++ is very good

u/Voley · 1 pointr/programming

A tour of C++ by Bjarne Stroustrup is pretty nice. It is a condensed version of his larger book. Gives a nice overview.

http://www.amazon.com/A-Tour-C-In-Depth/dp/0321958314/

u/Ddlutz · 1 pointr/learnprogramming

This is the closest you'll get in the 'conciseness' department. A tour of c++. Great book that is small, covers modern c++ also.

Fortunately you can access most of this free online legally. You can find link to them on the isocpp site here.

u/OmegaNaughtEquals1 · 1 pointr/cpp_questions

A Tour of C++ introduces all of the necessary syntax and language constructs needed for someone who is familiar with programming, but is new to C++. Weighing in at less than 200 pages, it manages to do all (if not more) that the bigger introductory books do but with an aim toward people who already know how to program.

u/Chee5e · 1 pointr/learnprogramming

While watching some talks from cppcon Herb Sutter, part of the ISO C++ standards commite, swore on A Tour of C++ by Bjarne Stroustrup who is pretty much the inventor of C++. I didn't read the book, but by the way these kinda important C++ figures talk it about it it should be pretty good, here is the part: http://youtu.be/xnqTKD8uD64?t=5m40s

u/slavik262 · 1 pointr/programming

TC++PL is odd. It's been a while, but I recall it reading more like a texbook or a reference than something you'd read cover to cover - does Stroustrup use it as a texbook at Texas A&amp;M?

A Tour of C++ is better, but AFAIK is mostly a chopped down version of The C++ Programming Language.

u/DarkDev · 1 pointr/gameDevClassifieds

I'm in the same situation as you and can recommend some good books I started reading:

The C++ Programming Language

Effective C++

Effective Modern C++

You can also find other good books here -&gt; http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list

u/Kackboy · 1 pointr/learnpython

Thanks, I will check those out m8! A question on c++. I want to get better at Java first since that is what i started as but a guy told me to quit java and go with c++ because according to me java is dying. Now if that is true or not, which I dont really believe in, I would still like to learn c++ later on aswell. Could you tell me how you got good at it? Books or online? Also, when I decide to pick up c++ should I go with c sharp or c++? Thanks if you can answer this :)

Do you know anything about this book

u/FranciumGoesBoom · 1 pointr/todayilearned

Freedom^TM is actually a pretty decent book. Make sure to read Daemon first.

u/Chaosmusic · 1 pointr/PersonOfInterest

If you are into novels, try Daemon by Daniel Suarez.

https://www.amazon.com/DAEMON-Daniel-Suarez/dp/0451228731

u/wserd · 1 pointr/Android

Yup, you should read daemon. That's all I can think about with all the hype of PoGo.

https://www.amazon.com/DAEMON-Daniel-Suarez/dp/0451228731

u/fierywords · 1 pointr/booksuggestions

You might like Daemon by Daniel Suarez.

u/KaroshiNakamoto · 1 pointr/Monero

This sounds a lot like Daemon, by Daniel Suarez, a read that I fully recommend. The book was published before even Bitcoin was a thing (late 2006), so the AI had to be a bit more creative about the incentives.

u/mzieg · 1 pointr/guineapigs

You've probably heard this before, but you may enjoy the Loki character explored in Daniel Suarez's Daemon books (he evolves a lot in the sequel).

u/kostiak · 1 pointr/Games

The more I read/watch about Watch Dogs the more I want a Daemon movie.

u/cheeseburger_humper · 1 pointr/Random_Acts_Of_Amazon

Book

All of me, loves all of you

/u/martysthreegirls You're pretty awesome. Thanks for checking on me today. :)

u/bonusdays · 1 pointr/AskReddit
u/Zoomerdog · 1 pointr/AskReddit

Books! Yeah, baby! Here are three:

Daemon and
Freedom

by Daniel Suarez. The first was self-published, became a hit, and the second is the recently-released sequel. Excellent near-future SciFi about a tech billionaire who sets up an internet daemon to take over the world, basically, after he dies of cancer. Violent, thought-provoking, and absolutely worth reading. My wife liked them also.

The Unincorporated Man by the Kollin brothers -- also new authors; also very talented. The chapter on the "virtual reality plague" alone is worth the time and price of the book, but the whole thing is very compelling.

[Edit because I can't type more than a sentence w/o a typo]

u/aveygt · 1 pointr/videos

reminds me of something out of the book, Daemon by Daniel Suarez

http://www.amazon.com/Daemon-Daniel-Suarez/dp/0451228731

u/gglebq · 1 pointr/booksuggestions

Daemon by Daniel Saurez

Might interest you in that case , It's a scifi thriller about a computer software which goes out of control , If I'm not wrong it's 400 pages long with a nice twist punch at the end.

u/seraph77 · 1 pointr/books

I never had this problem until I read "The Passage". If it were just a long, boring book, I could simply put it down. The problem was that I loved it. However, Cronin seemed to go into far too much detail over small things, or too much backstory for insignificant characters, etc. I definitely got the "rambling" feeling quite often in this book, but I was afraid to skim/skip anything, thinking I might miss something important.

When it was all said and done, even though I absolutely loved the book overall, I almost felt cheated at the time spent on what I considered "rambling". It's like I could have read another book entirely with that time, and still not missed any of what made The Passage as good as it was.

So, yeah- Definitely do your research into the author's style first, but there are certainly numerous &gt;400 books you should be enjoying. Suarez's Daemon was 650 pages and I never wanted to put it down for a second.

u/Spats_McGee · 1 pointr/Bitcoin

ZOMG YOU HAVE TO READ THIS BOOK:

http://www.amazon.com/Daemon-Daniel-Suarez/dp/0451228731/

The plot is essentially what you're describing (but without the blockchain); a computer virus that is able to utilize a distributed command &amp; control network and respond to real-world events.

u/jigglebilly · 1 pointr/Bitcoin
u/hst_samurai · 1 pointr/IAmA

Have your read Daniel Saurez's Daemon?

If so, do you think we could mistake a 'higher' intelligence for a rogue computer 'virus/system'?

u/anim8 · 1 pointr/AskReddit

I just read Daemon, and the sequel Freedom(TM) by daniel Suarez and they are both excellent. The deal with corporate control in the government and the future of the internet. It also makes heroes out of WoW players.

u/SpinningPissingRabbi · 1 pointr/technology

Sounds like some malware writer has had a good read of Daniel Suarez's Daemon (http://www.amazon.com/Daemon-Daniel-Suarez/dp/0451228731).

So the thing is horrendously complicated, hides in other components firmware (network card was mentioned) and can communicate over ultrasound.

But what can/will it do? How prevalent is it and what's it for? Apart from sending shivers down my spine of course.

u/Cagn · 1 pointr/booksuggestions

Daemon and it's sequel Freedom by Daniel Suarez would probably be a good recommendation if you like those two books you mentioned in the title.

u/didyouwoof · 1 pointr/booksuggestions

I just finished Daemon and Freedom (TM), a two-part series by Daniel Suarez. I liked them a lot, and I suspect I would have liked them even more if I were into online gaming.

u/metamirror · 1 pointr/Monero

DAEMON
by Daniel Suarez
Link: http://amzn.com/0451228731

u/Knott00 · 1 pointr/learnprogramming

C# a players guide. It got some good reviews on amazon. However, while going through the book, when writing things from console, I see the author write code like this

Console.WriteLine("Hello " + userName + " have a nice day!");
Is using a + like that an accepted way to write these little snippits? Everywhere else when I see this kind of thing written now, I see one of the following.

Console.WriteLine($"Hello {userName} have a nice day!");
or

Console.WriteLine("Hello {0} have a nice day!", userName);

I know that the way the author writes the code, it works. But I don't want to learn a way that works if it's not really the correct way you should be doing things.

http://www.amazon.com/C-Players-Guide-2nd/dp/0985580127/ref=sr_1_1?ie=UTF8&amp;amp;qid=1464524598&amp;amp;sr=8-1&amp;amp;keywords=C%23+a+players+guide

u/berzerKunt · 1 pointr/Unity3D

I would recommend this book: https://www.amazon.com/C-Players-Guide-2nd/dp/0985580127.As a beginner myself, I am still getting back to it when I'm in doubt about smth.It is very comprehensive and very well organized and helps you to understand the C# language as a whole rather than learning straight unity's monobehaviour.

u/nightcrawler99 · 1 pointr/csharp

thanks all for the suggestions. I know that I have to eventually choose a source and just follow through. But I came across these 2: https://www.amazon.ca/gp/product/0985580127/ref=oh_aui_detailpage_o00_s00?ie=UTF8&amp;amp;psc=1 and https://www.devu.com/curriculum/. Any experiences with either?

u/Tanellthyon · 1 pointr/learnprogramming

The C# Player's Guide. It also focuses on Visual Studio 2015 but I learned it in MonoDevelop (on Linux) and had very little trouble adjusting.

u/fiercealfalfa · 1 pointr/Unity3D

What do you think help is?
Seriously, stop fighting the advice you are getting. There is a minimum level of C# knowledge you should have so that you can understand the tutorials.
I am going to recommend a book to you, it is very good for helping beginners understand the basics.
It is called "The C# Player's Guide (3rd Edition)" I recommend reading about the first half of it before you continue with Unity.
Take my advice or not, that is a choice for you to make. But like many of the others in this thread, I have learned how to code already, I have been where you are in the process, this will help.


https://www.amazon.com/C-Players-Guide-3rd/dp/0985580135/ref=sr_
_cc_1?s=aps&amp;ie=UTF8&amp;qid=1518454821&amp;sr=1-1-catcorr&amp;keywords=players+guide+c%23

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/thisdudehenry · 1 pointr/csharp

I have Head First C#: A Learner's Guide to Real-World Programming with C#, XAML, and .NET https://www.amazon.com/dp/1449343503/ref=cm_sw_r_cp_apa_mYj-ybB13MG8A and also orderd The C# Player's Guide (3rd Edition) https://www.amazon.com/dp/0985580135/ref=cm_sw_r_cp_apa_MTj-ybN7NTF1H second edition has nothing but great reviews. Also you can skim through a few chapters and I like how it's structured with chapters that are only projects for you to do that they taught you basics in the previous chapter.

I plan on doing that book first since it's more up to date and modern . Then tackle head first c#, because it's a little older so I'll know my way around and it also starts you off with the GUI too and a few little things the other book doesn't go over .

u/GameDevsQuest · 1 pointr/gamedev

Looks like this topic is pretty well answered, but I always like to plug the book that helped me learn C#, The C# Player's Guide by RB Whitaker. It's very readable and covers everything you need to be pretty well versed in C#. It isn't exhaustive by any means, but will get you comfortable enough to do quite well with C# in Unity. Alternatively, you can go through the tutorials RB Whitaker has in his website for free. It covers most of everything in the book, but is a little more brief. Also, check out the unity tutorials. They'll get you up to speed pretty quickly.

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&amp;amp;qid=1521128465&amp;amp;sr=8-1&amp;amp;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&amp;amp;ie=UTF8&amp;amp;qid=1521128540&amp;amp;sr=1-2&amp;amp;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/rahat106 · 1 pointr/C_Programming

For the absolute beginner, go for the coolest book on c

u/maredsous10 · 1 pointr/ECE

My General Thought

I find it is best to learn and get exposure from several book/media sources coupled with actual application of things learned.

----

Introductory Texts/Links

Short Intro
http://heather.cs.ucdavis.edu/~matloff/unix.html

C Programming: A Modern Approach
http://knking.com/books/c2/index.html

Head First C (Different Presentation Style, check amazon preview)
http://www.amazon.com/Head-First-C-David-Griffiths/dp/1449399916/

Programming in C
http://www.amazon.com/Programming-C-4th-Developers-Library/dp/0321776410/

PDF Tutorial
http://phy.ntnu.edu.tw/~cchen/pdf/ctutor.pdf
Original Here &gt; http://www.tutorialspoint.com/cprogramming/index.htm

C The HardWay (Mostly complete)
http://c.learncodethehardway.org/book/

Zed's K&amp;R Critique
http://c.learncodethehardway.org/book/krcritique.html

Practical C Programming
http://shop.oreilly.com/product/9781565923065.do

Ben Klemens Modeling with Data book has a short C introductory section.
http://ben.klemens.org/pdfs/gsl_stats.pdf

-----

Reference
Harbison and Steele C Reference Manual
http://www.careferencemanual.com/

Plan on developing on Linux?
The Linux Programming Interface: A Linux and UNIX System Programming Handbook
http://www.amazon.com/dp/1593272200/

Didn't get Pointers?
http://www.amazon.com/dp/1449344186/

21st Century C, This book got dogged a lot, but I think its a nice text.
http://www.amazon.com/21st-Century-Tips-New-School/dp/1449327141

K&amp;R Scan (If you want an idea what's inside K&amp;R)
http://www.iups.org/media/meeting_minutes/C.pdf

-----

Need an Editor?
VIM Book
ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf

Vim Video Tutorials
http://derekwyatt.org/vim/

-----

Back in the Day
I used these books years ago. They're somewhat dated, but still useful and cheap.
Programming in ANSI C
http://www.amazon.com/Programming-ANSI-Hayden-Books-library/dp/0672484080
Advanced C: Tips and Techniques (Hayden Books C Library)
http://www.amazon.com/Advanced-Techniques-Hayden-Books-Library/dp/067248417X/

----

C Language Basics
How do I read/write files
How things are implemented at a lower level
Compiler Options and Functionality
What is a make file?
Debugging... How to do it... How do I use a standard debugger like GDB?



u/PooBiscuits · 1 pointr/EngineeringStudents

Let me recommend a very good book to use: https://www.amazon.com/Head-First-C-Brain-Friendly-Guide/dp/1449399916

This will teach you the basics of C, and just how computers work in general. I found it immensely useful when I was taking a class in C last summer. Any book in the Head First series is fantastic.

u/krosenil · 1 pointr/C_Programming

You can start with Head First C. I think, this book is good for starting.

u/IntOverflowException · 1 pointr/learnprogramming

That's completely fine.

Here is an excellent book on learning C. I really enjoyed this book, it might be up your alley.

u/TomorrowsGone85 · 1 pointr/gis
u/albinofoxyo · 1 pointr/gis

I found the combination of www.codeacademy.com and Learn Python the Hard Way really helped me to understand the fundamentals of Python.

Then this book by Paul Zandbergen Python Scripting For ArcGis opened the doors to Python scripting with ArcGIS and how the two tie together in a GIS environment.

u/jjniev01 · 1 pointr/gis

Here is what it sounds like to me what you are wanting to do, correct me if I'm wrong:

  • Input a list of coordinates in some format (e.g. table view, csv file, etc) along with a search radius value

  • Have something, ArcMap or a python script, go through each set of coordinates and return pertinent information within the designated search radius for each input coordinate

    You could possibly do this in model builder using a table object, table view, or a linked Access database as the input object containing the coordinates. Honestly, I have never been able to figure out the iteration tool in model builder and find it much easier to write everything in Python. Perhaps another user could be of assistance if you take the model builder route.

    If you were to go about it in Python, as a script in a custom ArcTool, you would have the user put in a table object of some sort as mentioned above and could also go the CSV file route which would allow you to easily convert Excel related files to a more friendly file type. You could also make a standalone script which would allow you to do everything without having to open ArcMap.
    However, if you are very new to Python and are not familiar with object oriented program, I would say that model builder is your best bet as what you describe is very likely outside of your current programming capabilities.

    Here are some great books for learning Python and using Python within ArcGIS.
    Python Scripting for ArcGIS
    Introduction to Computing Using Python: An Application Development Focus
u/ThunderMountain · 1 pointr/gis

Thanks! I have a student license, I've been working my way throught the GIS Tutorial Series and will be getting Python Scripting for ArcGIS. Do you have any recommendations for any other books in perticular? Personal projects sound like a great option too.

u/sarahmiller3 · 1 pointr/scala

US beginner here

In general jobs are better in big cities than in rural areas. Look in places like Paris, Berlin, etc. In addition, keep in mind that a lot of companies don't know how to hire Scala developers. They list insane amounts of Java experience as a prerequisite thinking that a Scala developers is a glorified Java developer when in fact it's different. That being said, the good ones will actually care if you know functional programming. Start with the basics - core language

https://github.com/aashack/programming_in_scala_2nd/blob/master/Programming%20in%20Scala%2C%202nd%20edition%20(Artima%2C%202011%2C%200981531644)(1).pdf

Functional Programming

https://www.amazon.com/Functional-Programming-Scala-Paul-Chiusano/dp/1617290653/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1467346928&amp;amp;sr=1-1&amp;amp;keywords=functional+programming+in+Scala

From then people tend to go either toward big data (Spark, Scala wrapper for Hadoop) or toward web dev (Akka, Play). Big data pays more, lol. If you're getting a masters degree, the big data tests don't actually need you to know much Scala - just be able to solve simple programming puzzles. If you need to do ground up backend infrastructure with a team (like with actual design patterns and scalaz and what not), actually getting a job is hell because all the senior devs take up the jobs and if you want them you have them you impress the hell out of your interviewer (at least I had to) and also your interviewer has to be open minded (if they say something like "5+ years Java for Scala position", you're screwed). Java jobs are easier to find, and you don't have to travel to big cities, but they pay less.

u/pgrizzay · 1 pointr/javascript

Yup, you're right! It looks like MDN recommends + over concat for performance reasons, but both are functionally equivalent.

And thanks for the kind words, they mean a lot!

The one book that really helped me was Functional Programming in Scala, I can't recommend it enough. It takes a very 'exploratory' approach, and has lots of exercises which are very helpful.

Scala was probably the best language for me to learn fp in, since I had lots of experience with JS &amp; the syntax is very similar to it, hope that helps!


u/rashidnaushad · 1 pointr/slavelabour

Hi. Happy new year! How are you doing?

Do you need this book?
https://www.amazon.com/Intro-Java-Programming-Comprehensive-Version/dp/0133761312

If yes. I have it.

u/berniesanders45 · 1 pointr/Libertarian
u/puppydogbryn · 1 pointr/JavaFX

I used this book in my programming class. It's got a really good section on javsfx. I have no idea your skill level, or what kind of questions you have, so sorry if this isn't helpful. But try and find a PDF online of this maybe. https://www.amazon.com/Intro-Java-Programming-Comprehensive-Version/dp/0133761312

u/AnTaRes27_ · 1 pointr/utdallas

the books i have:

C++ 8th edition by Tony Gaddis amazon link

C 8th edition by Paul &amp; Harvey Deitel amazon link

Schaum's Outline: Advanced Mathematics for Engineers and Scientists amazon link


the books i want:

Shigley's Mechanical Engineering Design (in SI units); ISBN 978-9339221638

Machinery's Handbook; ISBN 978-0831130916

Machine Shop Trade Secrets by James Harvey; ISBN 978-0831132279 or 978-0831134778 (prefer second edition)

*CNC Trade Secrets by James Harvey; ISBN 978-0831135027

you can PM me your offer and we'll negotiate from there :) note it doesnt really need to be a 1:1 trade. if you have other things in mind PM me anyway i might be interested

i'll delete the post when it's all out. thanks!

u/Deflife · 1 pointr/cpp_questions

Thanks a lot, I'll make those changes.

Can you explain what you mean by it's C and not C++ though? It's all stuff from this book https://www.amazon.com/Starting-Out-Control-Structures-Objects/dp/0133769399

Should I be using something different?

u/blazergame · 1 pointr/cpp

http://www.learncpp.com/ is a good website to start. If you're interested in a book -&gt; http://www.amazon.com/Starting-Out-Control-Structures-Objects/dp/0133769399.

u/mrlr · 1 pointr/selflearning

Threads in /r/cplusplus have recommended

u/the_stanley_duck · 1 pointr/learnpython

I like this book:

https://www.amazon.com/Effective-Python-Specific-Software-Development/dp/0134034287

I'd rank myself as an intermediate Python programmer, and it's pretty handy for me. But I can see it being great for beginners as well, as it introduces a few advanced topics without delving too much into them. It mostly provides specific, functional usages of Python in real-world development.

u/soyPETE · 1 pointr/ComputerEngineering

It depends on what you are wanting to go? You can start with this:


Effective Python: 59 Specific Ways to Write Better Python (Effective Software Development Series) https://www.amazon.com/dp/0134034287/ref=cm_sw_r_cp_api_w-O0AbM4Z2FJR

u/wired41 · 1 pointr/learnpython

Thanks for the info. It's a 9 week course that ends on November 1 so I am guessing the next course would start that week or the week after. I do want the certificate so I think I will wait. In the mean time, I will check out sentdex's pythonprogramming site.

After the MIT course, I was thinking of moving onto Effective Python, but I am not sure about the jump in difficulty. Would that be a good idea?

u/RangerPretzel · 1 pointr/learnpython

Sure, I'm self-taught, but I've been in software engineering for a while.

Python is like a lot of other languages. It has its own vocabulary for some things, but it also uses the vocabulary for most other things in the industry.

Mostly, I just picked up a book and started reading and coding. It also helps to have someone to chat with, too.

My one co-worker and I like to geek out about Python nuances. He's a big fan of it. I like Python, too, but prefer statically typed languages, like C# and Scala. Although I do code in Python daily.

So we have interesting debates about things. It's not that we're diametrically opposed about things, it's that we have subtle differences that we like to discuss.

And we both learn about the language this way.

So yeah: recommendation: Get someone to talk to about this. Also read other people's code.

Also, I like the book Effective Python: 59 Specific ways to write better Python

u/BurpsWangy · 1 pointr/golang

I applied as well. If you haven't, look at courses and video from Todd McLeod. I think most of his Udemy courses were fairly cheap, and he offers a lot of valuable information on his YouTube channel. "The Go Programming Language" is a great book too.

https://www.amazon.com/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440

Worth it.

u/dcowboy · 1 pointr/golang

I purchased this:

https://smile.amazon.com/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440/ref=sr_1_1?ie=UTF8&amp;amp;qid=1499285738&amp;amp;sr=8-1&amp;amp;keywords=golang

and started doing programming exercises here:

http://exercism.io/languages/go/about

back in February and never looked back. However. I've also been programming for ages so YMMV with this approach.

u/diisiqueira · 1 pointr/Livros

Terminei de ler o Clean Code e o The Choose Yourself Guide To Wealth, agora comecei a ler o The Go Programming Language. Queria ler alguma aventura, mas pra ser sincero dei uma procurada por cima e nenhum título atual realmente me chamou a atenção.

u/jwcrux · 1 pointr/sysadmin

Absolutely! I recommend this book as a good general-purpose resource.

Then, I recommend reading source code, especially the Golang stdlib. IMO, one of Go's biggest strengths is the readability of the stdlib as a resource to find code that can help you do what you want to do.

If you want something fun to try and learn Golang, you might be interested to check out the CryptoPals challenges. They can be done in any language, but they're a good excuse to learn a new language. Plus, you get to learn some neat crypto :)

u/NicholasTheGr8t · 1 pointr/compsci

The Go Programming Language by Alan Donovan, and Brian Kernighan is a start.

I wouldn't seriously use Go for gaming or mobile, maybe as an experiment but you'll have to get used to using the best tool for the job.

Web development: Javascript/HTML for Front-end, Python/Ruby/Javascript/PHP/Go/Java for the back-end work
Mobile: Android(Java), iOS(Objective-c, Swift)

u/ryc8889 · 1 pointr/java

I would also advocate Joshua Bloch effective Java

He does a very good job of breaking down different Java tips into different chapters and each chapter has a set of items. He also goes one step further and instead of just instructing you to do one thing blindly he goes over the other options possible and why they are not optimal

Also as an added bonus, Amazon says there's a third edition being released in october

Effective Java (3rd Edition) https://www.amazon.com/dp/0134685997/ref=cm_sw_r_cp_api_ccmEzb08YXW4C

Rob Martin's clean code is another book I would recommend but it isn't specifically for any one type of project but it gives nice examples of how to cleanly structure your code(also has a nice set of "smells and heuristics" which you can use as a pocket reference) but given your past experience this book can probably be more of a skim.

Other than that I would agree with what other people are saying with learning a framework. I like spring boot and there's plenty of example projects on GitHub that uses it and spring's own documentation is also pretty good.

For concurrency I would recommend Brian goetz Java concurrency in practice.

If you want a refresher for data structures and algorithms and just some examples of it in java I recommend Robert Lafore's data structures and algorithms in Java but if you're more familiar with math/algorithms and want to do a deeper dive then the CLRS introduction to algorithms is the holy Bible.


Edit: one other thing that I have found extremely useful is online developer websites

My top three are:
Dzone - has fantastic refcardz which are like cheat sheets for different frameworks, technologies and even general principles as well as articles for general programming as well as specific topics (cloud, Db, iot, etc)

Tip - subscrbe to the dzone newsletter. They send you emails that are collections of 10 or so articles and I usually just look through them to see if there's anything interesting or relevant to me

Infoq - similar to dzone also has a great collection of articles and presentation videos

Oreilly - not really a website I know but if you look at their free ebooks there's a good collection of them that will help you get started depending on what topics you're looking at

Bonus - YouTube. There's just so many tutorials and videos starting from beginner levels all the way to advanced topics like scaling cloud architectures for google-like loads, microservices, deployment.

I don't think anything beats doing a personal project though. If anything you can fork a starter spring boot project(which generally revolve around a basic concept like an online book store) and re-write it to be about a concept you're interested in.

Also reactive extensions seem to be catching a lot of buzz these days. I don't have any personal experience working with them but could also be another interesting topic to look into since I think java is actually adding support for reactive streams in java 9

u/-manabreak · 1 pointr/badcode

For java, check out Effective Java by Joshua Bloch. It's basically a book around this kind of stuff and should be read by every Java developer.

u/lbkulinski · 1 pointr/learnjava

The third edition of Effective Java might be helpful. It was updated for Java 8 and 9. For 10 and 11, I suggest taking a look at some of Oracle’s articles. This one covers local variable type inference.

u/zeldaccordion · 1 pointr/java

Have you read Effective Java? I'm reading it right now and enjoying it / learning quite a bit from it. I recommend it!

u/drboyfriend · 1 pointr/androiddev

Keep working at it. Launch a few apps in the app store, no matter how basic and try to get some users and address their feedback.

Go through Udacity's free Android dev course. Another good resource is CodePath's Android guide and Effective Java.

It's a lot of hard work but being able to point someone to something you've published and talking through developing it and decisions you had to make will help a lot more than just having a degree.

Good luck!

u/zenberserk · 1 pointr/Kotlin

What about Effective Java?

Or is it considered too advanced?

u/jxing_xu1 · 1 pointr/learnprogramming

recommended book A Tour of C++ (2nd Edition) (C++ In-Depth Series)

- brief but comprehensive

- authored by c++ god father

authoritative reference cppreference.com

- maintained by c++ standard committee

- clarify c++ language details

- API manual

u/CraigularB · 1 pointr/cpp

I'm surprised that the ship time for Tour is so long on Amazon (the link here says 1-2 months: https://smile.amazon.com/Tour-2nd-Depth-Bjarne-Stroustrup-dp-0134997832/dp/0134997832/ref=mt_paperback?_encoding=UTF8&amp;me=&amp;qid=1556289192 ). Does anyone have a better place to buy it from, or is there a newer edition that caused this? I could always read it online I guess instead of buying the book but I like having physical programming books for some things.

u/rodreegez · 1 pointr/rails

I second the comment to learn SQL really well. Also regular expressions come up frequently enough to be worth learning a bit about. Some familiarity with data structures is worth picking up, and getting a grasp on some common design patterns is well worth the time.

On the last point, I’d recommend Design Patterns in Ruby and Refactoring Ruby

Hope that helps.

u/vxxn · 1 pointr/ruby

I mispoke (somebody else in thread linked it), but Russ Olsen most definitely wrote a great book on patterns.

http://www.amazon.co.uk/Design-Patterns-Ruby-Addison-Wesley-Professional/dp/0321490452

u/greymalik · 1 pointr/rails
u/danwin · 1 pointr/ruby

Well, while we're on the topic, I'll recommend another book I've liked ;)

"Design Patterns in Ruby" by Russ Olsen

http://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/0321490452

It covers Gang of Four patterns (well, most of them) except in Ruby...an extremely helpful reference and very readable...my only caveat is that if you get it for Kindle, the code is not particularly well-formatted.

u/zaclacgit · 1 pointr/rubyonrails

Answers to follow, but try to make sure that you're not being overzealous in your attempts to learn Ruby. Questions about general code methodology are good, but in order to really understand and apply them you'll have to have a pretty solid grasp on the basics.

Despite how it may seem, you might be making it harder on yourself by trying to "skip ahead" and start applying later concepts early on.

There's a reason the first program most people write doesn't involve creating a Person class that responds to greet_with_hello(world).

If you've simply finished the Rails tutorial and want some Ruby experience, I'd recommend giving The Well-Grounded Rubyist a try. Many people in your position have done very well by it, and it will teach you what you need to know as you need to know it.

But as for your actual questions.

&gt;What is the best resource to learn general code methodology and syntax, language agnostic. I'm picking things up what I would consider to be pretty quickly, but I know being able to learn about general themes and syntax of coding would help immensely.

Syntax is inherently tied to the language you're using. While there are similarities between some languages, there's no general "Guide to Syntax" that you would need to worry about. Happily, many people find that syntax is the easiest thing to pick up while learning an additional language. The general concepts are what you learn the first time, and then you learn "How do you do loops in C++ again?"

So don't worry about syntax.

However, Ruby does have the Ruby Style Guide that will answer questions about how to make your code look. As you'll find is the case with many things in Ruby, the style guide is not written in stone. It's just a good idea, most of the time.

With that out of the way, we can move on to things that are not language specific. Well, sort of.

Data Structures, Algorithms, and Design Patterns are established ways of doing or handling certain tasks. In theory/abstract, these are language agnostic. In practice, application or use can vary between languages.

There are a handful of decent books that will instruct you on advanced data structures and algorithms. I would visit /r/learnprogramming and peruse their sidebar for recommendations. That being said, I have yet to find a book written with examples in Ruby though. If you're completely unfamiliar with other languages then you might want to find something that deals in some sort of pseudocode.

It might be difficult to translate the concepts that are presented in pseudocode (or whatever language the book chooses) into Ruby. Especially if you are not decently comfortable with solving problems in Ruby, and thinking about problems in Ruby.

However, there are some books out there on how to design things in Ruby. They happen to be really good books too. I've honestly lost count of how many times I've recommended them, let alone how many time I've seen them recommended.

Practical Object-Oriented Design in Ruby will essentially guide you through learning what should and should not go into an object, and when to make those decisions. It is an eminently readable book, and conveys the information in concise and graspable fashion.

But if you're not in a position where you're really comfortable with the idea of what Objects are, and how you create/use them in Ruby, this book might be best saved for after you get a handle on the basics of that stuff.

In fact, most people seem to get the most benefit out of this book after they should have already read (and heeded) it. Sort of a situation where the right way makes the most sense only after you've been doing it the wrong way.

Secondly, Design Patterns in Ruby will show you how several common ways of doing things are utilized in Ruby. Personally, I read POODR before Design Patterns in Ruby, but I'm not aware of any reason read them in any particular order.

I'll reiterate that both of these books have general design concepts inside of them, but that they are dyed-in-the-wool Ruby books. You will absolutely learn things that you can take elsewhere, but it won't come to you in a purely abstracted manner.

&gt;Is there a list of all the predefined calls in Ruby that I can find somewhere. Occasionally I write to do something only to find out that I'm breaking down a process that is shortened already. I'm sure these are commonplace for people who have coding experience before starting Ruby, but that's not a luxury that I'm afforded.

Absolutely! It's at Ruby Docs.

Don't get yourself down on this one. In this very particular case you might be a little better off than someone that has a bunch of programming experience in other languages.

Why you ask?

Lots of people aren't necessarily expecting the ease in which you can cause things to happen in Ruby with just a few method calls. They are waaaaaaaaaaaaaaay more used to breaking things down into smaller problems as a matter of necessity than you are. So congrats! Fewer habits to break there!

You can actually just google "ruby docs class-name" for whatever class you're working with to see what methods are available to you out of the box and what those methods do.

As a recommendation, I'd get pretty familiar with the module Enumerable, and check out the Array class. You'll end up using those a lot.

Like a whole lot.

In case you're curious, the awesomeness found in Enumerable is usually where people with prior programming experience tend to make things harder on themselves, because they're use to things being harder on them. A one line split, sort, and join is just a thing of beauty.

&gt;Lastly if there was anything that really helped you that I didn't mention I'm open to any suggestions really.

In all honesty, what really helped me the most in learning Ruby was getting really comfortable with the syntax, and then learning what to do after that.

RubyMonk is probably one of the best places I've used to get a guide through Ruby, even advanced topics.

CodeWars is a good way to give your mind a nice stretch and workout. You'll just solve little problems that force you to make sure you know how to use Ruby when you need it.

After you're comfortable with the language, start making some small projects.

Games are usually a good first start. They have clearly defined rules and orders of events, as well as lots of things that are easy to recognize as objects.

Black Jack, Tic-Tac-Toe, MasterMind, BattleShip, and Chess are all pretty good projects to work on, and maybe in that order too.

Somewhere around then end of Tic-Tac-Toe or MasterMind I'd probably crack open POODR and giving it a read through. The value of all the lessons might not make complete sense at first, but it's that way with everybody. Just trust the author and go along with it.

Lastly, and I can not stress this enough, learn how to write and use tests for your code.

I know. It seems like tests are a waste of time. You're writing them before you're even really writing the code. On top of that, you already know how you want to do the thing you want to do, and it'll work!

Trust me. If the thing you're making is at all complicated, write some tests.

If you're ever going to want to change anything about it, write tests for it.

It will save you an incredible amount of time when you start breaking things, and will also give you the confidence that things probably aren't broken after you've fixed them.

Also, feel free to ignore everything I said about not jumping too far ahead. People learn in different ways, and desire to learn in different ways. If you feel like learning more advanced concepts now is going to be way more interesting for you, then you should totally do so.

u/kichael · 1 pointr/rails

My favorite is the book design patterns in ruby

u/Bizkitgto · 1 pointr/learnprogramming

I don't know of too many links on c++, but the Stroustrup book is known as the Bible.

u/blargh4 · 1 pointr/C_Programming

Using Visual Studio with C++ is trivial, just open the "Get tools and packages" window and install the C++ desktop development package, then start with one of the templates MS provides.

Bjarne's book is a good C++ beginner resource:

https://www.amazon.com/C-Programming-Language-4th/dp/0321563840

One you know what you're doing somewhat, this is a good resource for best practices:

http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines

But personally I'd start by limiting yourself to C (or the C subset of C++) first, and wrapping your head around the basics of low-level programming (like pointers) before taking on C++. It's a big, ugly language that will hurt your brain (and honestly, it would not be my first choice for anything that doesn't require its particular properties - what are you planning to do with it?).

u/NudeRanch · 1 pointr/cpp_questions

&gt;Someone might recommend better but The C++ Programming Language has been well received as a modern introductory C++ book.

&amp;#x200B;

That book is a reference book; it would be like trying to learn a language to by reading a dictionary. Perhaps you are thinking of Bjarne's "Programming: Principles and Practice Using C++" (his textbook for an intro to programming class), or his "A Tour of C++" (which is targeted to experienced programmers who wish to learn C++).




"Programming: Principles and Practice Using C++" is great because it teaches with modern C++.

u/crondom90 · 1 pointr/battlestations

Found, it's:
The C++ Programming Language (4th Edition) Addison-Wesley
http://www.amazon.com/The-Programming-Language-4th-Edition/dp/0321563840

u/altano · 1 pointr/cpp

The C++ Programming Language, 4th Edition is the first C++ reference I've read that seems very trustworthy and I highly recommend it.

u/HPCer · 1 pointr/cpp

When I started, the most memorable three resources I know I had were the following:

  • Bjarne's book - I don't think any C++ developer can truly call themselves even intermediate until they have absorbed at least half the content in the book. I started off with his 3rd edition, which is way less intimidating and shorter, but I subsequently ran through this entire book after it came out. There are no shortcuts on here - you need to read it.
  • Effective C++ 3rd Edition - I would almost require this one as it prevents any new C++ developer from getting caught in C++ gotchas. You should ideally follow this book up with his 4th edition afterwords. The reason why I recommended the 3rd first is because that book is much more newbie friendly. The 4th edition is targeted towards experienced C++ developers that already have had their feet wet with C++11/14 and want to figure out some best practices. Note the 3rd edition is for C++98 while the 4th is for C++11/14.

    After you're done with the two above required books, here are some useful readings:

  • What Every Programmer Should Know About Memory - This is an absolutely essential reading whether or not you've taken any systems courses. It's the foundation of what you will be programming towards (optimizing CPU cache usage).
  • 1024cores - I believe this guy works/worked at Google at one point, but his site is essential to understanding multi-threaded programming (which is essential in the field). Browse through his site and learn what you can.
  • Linux Kernel Development - Robert Love (who also works at Google) has probably written the most concise and understandable book on the Linux kernel I've ever read, and I've run through the Daniel Bovet's book and Michael Kirrisk's. For one thing, they're 1,000 and 1,500+ pages, respectively. Secondly, all I've found in those two books that I didn't find in Robert Love's is the implementation details in some areas as well as the details on the scheduler. Robert Love's incredible descriptions on the bottom-half/tasklets were already more than effective for normal understanding. I believe the latter books were more detailed in the networking areas as well, but in that case, you're better off with Understanding Linux Network Internals.

    The above readings will probably be a solid 6-12 months to read and absorb assuming you spend a couple hours a day, but I think it'll be well worth it in the long run since this type of stuff sticks with you for a long time. I read the above around 2013, and I can still talk about the CFS/other schedulers, software interrupts, and how the CPU cache works. It'll also make converting to other languages even more of a breeze because you'll know how everything works underneath the hood.
u/0b_101010 · 1 pointr/learnprogramming

Check out this here beauty maan.

u/cbkrunch17 · 1 pointr/learnprogramming

I like to play the game where I read this book :)
https://www.amazon.ca/C-Programming-Language-4th/dp/0321563840

u/Truth_Be_Told · 1 pointr/cpp_questions

If you remember your "basic" C++, i have found the following to be the best introduction to learning "modern" C++.

u/ACoderGirl · 1 pointr/learnprogramming

Books for one thing. Bjarne Stroustrup's own book is somewhat up to date (C++11). The differences since C++11 (which is something that'd be considered "modern C++") can be picked up in a few ways, but StackOverflow is particularly good for explaining the new features in single, well written articles. That works well for "bridging the gap", since books are typically slow to adjust for this and there's always new language features being added.

u/TheMartyr5 · 1 pointr/learnprogramming

Then learn c++ as it's the most commonly used language in the industry. Also learn how game engines and games work though. Go on amazon pick up a few books on game development, then try using a few game engines like unity3d and unreal engine. create stupid basic games just so you have a feel of how the engine works, then Get the book Game Engine Architectures 2nd edition by Jason Gregory, it gives the ultimate description on how engines work at the low level and high level. Give your self a few months to a few years to fully understand games, game engines, programming and everything I just said as it takes a while to master these subjects. I started learning c++ two years ago and now I'm starting to write my first real software ( A 3D Rendering Engine). But if you stay focused and it's interesting to you time won't matter. These are my steps:

  1. Take a few months to learn C++, these are some good books (in the order they should be read) http://www.amazon.com/Jumping-into-C-Alex-Allain/dp/0988927802/ref=sr_1_2?ie=UTF8&amp;amp;qid=1420731768&amp;amp;sr=8-2&amp;amp;keywords=c%2B%2B and http://www.amazon.com/C-Programming-Language-4th/dp/0321563840/ref=sr_1_1?ie=UTF8&amp;amp;qid=1420731824&amp;amp;sr=8-1&amp;amp;keywords=c%2B%2B

  2. Learn how 2d games and engines work (plenty of source online)
  3. Learn how 3d game engines work (unity3d, unreal engine)
u/Aflixion · 1 pointr/learnprogramming

Try The C Programming Language or The C++ Programming Language then. Those should cover the guts of C and C++ that he'll need. The C Programming Language, commonly called K&amp;R due to the authors' names, is probably the best reference guide out there for C. To give you an idea, when I took the class that covered C in my undergrad years, I used my mom's copy of the book from when she was in undergrad. It's still used to this day.

u/1000Parsecs · 1 pointr/gamedev

If you want to be a programmer, most people are going to tell you to learn C++. But you're going to need to invest plenty of time in it and don't expect to build anything awesome shortly after until you have gained more experience. If you don't have anyone knowledgeable and experienced to teach you, you must learn it from reading some good C++ books like this.

AFAIK most people are gonna tell you to not learn C++ online because online tutorials always lack information or are outdated, and the wiki at /r/learnprogramming even has a section about discouraged resources.

However, you can also choose to learn C, if you want. C is not exactly C++, but if you want to learn C, there is Handmade Hero, which is great, but again, you need to invest a portion of your life in it. Learning C/C++ and attempting to master it is absolute time consuming and will drain a significant portion of your sanity.

If you're an absolute beginner, some people are going to tell you to not start with C++, because.

u/Gankbanger · 1 pointr/cscareerquestions

You are probably the target audience for this book about learning to program using C++. I have not personally read it, but the same author, the creator of C++, wrote one of the best books in programming I have ever read

That said, be warned, C++ is a very large and complex language. If this is your first programming, I'd probably recommend you try out a simpler language first such as Java.

u/plexoflexo · 1 pointr/pcmasterrace

I don't understand why people are suggesting codecademy for C#/CPP. Microsoft Virtual Academy is excellent for learning C#. I suggest this and/or this for learning CPP.

u/Breaking-Away · 1 pointr/Python

There are plenty of good books, but the obvious one to mention is The C++ Programming Language 4th Edition. I'm still a relative novice at C++ but the book has been recommended by a lot of people much more versed in C++ myself and it is written by Creator and maintainer of C++.

Also, the book is up to date. Writing good idiomatic C++ has changed significantly over the years and so a lot of older resources will not accurately teach modern best practices.

I also really like his intro chapter. He does a really good job of explaining the best "mindset" to use when learning C++, the reasons he initially wrote the language and how it has grown from where it started to where it is now.

u/totalanonymity · 1 pointr/learnprogramming

Something to mention: A new edition of his more intermediate+ level book on C++ releases on May 19 and has a pretty nice discount on Amazon currently if you're looking to move on from his beginner text. I don't know about the quality of this other series from him, but I figure it can't be too bad.

u/ordnance1987 · 1 pointr/learnprogramming

Make that app in a language that you know. Or learn C++ while doing bug fixes for that app. You should be able to learn C++ if you know your fundamentals and using a resource like The C++ Programming Language

u/maestro2005 · 1 pointr/learnprogramming

I highly recommend this book by two of my friends. One of the big problems when learning FP from an imperative, stateful background is that the "why"s aren't adequately explained, and when you only know just a bit of FP but haven't gone all the way down the rabbit hole things look uglier than they are. This book does an excellent job of handling both.

u/dysfunctionaltrav · 1 pointr/cscareerquestions

Absolutely, it's a very clean and easy to use language. It is object oriented and functional which allows someone who has never done functional programming to ease themselves in. Before I started learning scala I only knew python so it was nice that brackets and semicolons weren't really necessary. Higher-order functions are fantastic. /u/bananaboatshoes brings up a good point that scala builds on the jvm so it's usability is the same as java. It also allows you to use java libraries in scala pretty easily. Once you have learned scala going back and picking up java is fairly easy if you find it necessary.

&amp;nbsp;

I'll see if I can't conjure up a few resources.

Scala website

The book I read

A good book on functional programming

&amp;nbsp;

I hope this all is formatted correctly I'm fairly new to commenting on reddit.

*Edited my formatting

u/tayo42 · 1 pointr/cscareerquestions

I liked https://www.amazon.com/Functional-Programming-Scala-Paul-Chiusano/dp/1617290653 and https://underscore.io/books/advanced-scala/

Underscore has other free books too.

I did what I could from those books , wrote Scala and then went back to the those books. Haskell is cool too. I've found it pretty hard even though I'm comfortable in Scala. There's r/Scala too

u/Shredforgirls · 0 pointsr/learnjava

Introducion to Java is pretty nice. Before Oracle bought Sun Microsystems, an engineer friend who works at Sun recommended me Thinking in Java.

u/proverbialbunny · 0 pointsr/cpp_questions

Someone might recommend better but The C++ Programming Language has been well received as a modern introductory C++ book. You might want to consider starting with that. Also, picking an IDE can make life easy, but isn't a requirement. Of the IDEs to choose from: CLion is popular but costs. I think Visual Studio is popular, but I believe it costs too (Not to be mistaken with VS Code). Qt Creator is pretty popular as is KDevelop. Both are free.

u/enterthebored · 0 pointsr/learnprogramming
u/R3V3147i0N · 0 pointsr/rails

Rails Antipatterns by Chad Pytel and Tammer Saleh:

http://www.amazon.com/Rails-AntiPatterns-Refactoring-Addison-Wesley-Professional/dp/0321604814

It's a little bit outdated, as it was written for Rails 3, but there's a lot of good stuff in that book.

u/xovertheyearsx · 0 pointsr/learnprogramming

I'd suggest getting a book if you've never programmed before. Any tutorials online will give you a hint/clue and get you started, but the rest is up to you.

C++ Primer Plus is a good start: http://www.amazon.com/Primer-Plus-Edition-Developers-Library/dp/0321776402

If not, then you can use references like ianhedoesit suggested. This site is pretty cool and they provide tutorials for a lot of common programming languages:
http://www.tutorialspoint.com/computer_programming_tutorials.htm

u/cybereality · 0 pointsr/compsci

I found the books C++ Primer ( https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113/ ) and C++ Primer Plus ( https://www.amazon.com/Primer-Plus-6th-Developers-Library/dp/0321776402/ ), no relation, to be great resources for learning C++. They are a little older now, so covering C++11, but if you are just starting out that is fine, since most of the core concepts have not changed in the last few years (and most of the new features are more advanced anyway).

u/coolnonis · 0 pointsr/learnprogramming

Head First C .. Best C book i've ever read. Thank me later.

u/ElDiablo666 · -1 pointsr/programming

I absolutely love Stephen Prata's C++ Primer Plus. This is the sixth edition, which I've not read, but I can attest for how great the fifth edition is.

u/nameless912 · -3 pointsr/UIUC

Go out and buy K&amp;R's "The C Programming Language". It's about 50 bucks on Amazon, and it's the definitive guide to C.

C++ is a derivation (and in fact, a strict superset) of C. So, anything that works in C works in C++. The book will get you acquainted with pointers, structs, and all the things that make C totally different than Java.

The best way I can describe C++ is if Java and C had a bastard child-a lot of the concepts from Java (object orientation, a class library, etc.) translate pretty directly, but a lot of stuff (pointers, memory allocation/deallocation, structs, unions) come from C. I find that these topics are much easier to learn through C rather than C++.

C doesn't contain much resemblance to Java because it has no object orientation (i.e. you can't have "objects", nor can you have "object methods" which only act upon the data in that object) which makes it a very weird experience for someone with only Java programming experience, but being able to program in straight ANSI C is an invaluable skill and it will put you WAY ahead in 225.

Here's a link. Trust me, don't rent this book, BUY it. You will use it for years to come.

Also, if you want a book that strictly covers C++ (I would only recommend this after you go through all of K&amp;R), go ahead and get this one. It's easily the best C++ reference I know of.

u/Ursium · -3 pointsr/ethereum

Good point, for accuracy I should probably have written "Cyberpunk" however a) I was being a bit facetious/lose b) I see both cypher and cyber punk as one movement these days, probably because i'm getting old c) my preference goes to Daemon by Daniel Suarez.

Littérature Bonus points: Karl Schroeder from "I am the mighty brick" fame is an Ethereum fan.

u/chris_ledett · -5 pointsr/ruby

Fucking moron, i think you missed the most important one? http://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/0321490452

u/tylercoder · -7 pointsr/learnprogramming
u/JohnReedForPresident · -9 pointsr/rust

Async programming is just programming using the Future Monad, but with the boilerplate of the Future Monad removed.

&amp;#x200B;

For me to understand it, I first understood what a Monad is, then I understood how a future or promise (async) is a Monad. In my opinion, the most thorough way to learn what a Monad is is by learning functional programming such as https://www.amazon.com/Functional-Programming-Scala-Paul-Chiusano/dp/1617290653 . The very short explanation is that a monad is a chain of computations. The chain typically looks like this:

&amp;#x200B;

Foo.andThen( someLambda andThen ( someLamdbda and Bar ) )

&amp;#x200B;

Basically, the "andThen"'s continue the chain of computation and the chain typically ends with an "and" or something to that effect instead of an "andThen". The async keyword in say JavaScript (there is a library for it in Scala) just hides the boilerplate so you don't have to write "andThen andThen andThen"

&amp;#x200B;

I don't know if you'll understand this, but I made a video explaining it in Scala a while back:

&amp;#x200B;

Monads in Scala: https://youtu.be/mXUze0vH-PQ

Futures in Scala: https://youtu.be/JPbeFZn3OV0

&amp;#x200B;

From this series that I made: https://www.youtube.com/playlist?list=PLXcr3tdUCbQb6zjN6kw4s20joId2jygUe