(Part 2) Best software design & engeneering books according to redditors

Jump to the top 20

We found 4,058 Reddit comments discussing the best software design & engeneering books. We ranked the 766 resulting products by number of redditors who mentioned them. Here are the products ranked 21-40. You can also go back to the previous section.

Next page

Subcategories:

Computer localization books
Computer reengineering books
Object-oriented design books
Computer performance optimization books
Software development books
Software reuse books
Computer programming design books
UML language books
Computer robohelp books
Software testing books
Software design tools
Computer programming logic books
Software coding theory books
Computer quality books

Top Reddit comments about Software Design, Testing & Engineering:

u/bigwow000 · 79 pointsr/Games

Literally dozens of studies. Source: Rapid Development: Taming Wild Software Schedules. I don't have the book on hand anymore, but I only read half of it, and there are endless studies over decades sources and analyzed. The science universally shows that crunch is counter to productivity.

u/gvwilson · 35 pointsr/programming

A shorter (and better) version of the talk is online at http://software-carpentry.org/4_0/softeng/ebse/. If you want to keep up with the latest in empirical studies of programming, check out http://www.neverworkintheory.org/ (where we're blogging once or twice a week about recent findings), or have a look at our book "Making Software" (http://www.amazon.com/Making-Software-Really-Works-Believe/dp/0596808321) which collects the most important findings, and the evidence behind them.

u/Avinson1275 · 29 pointsr/gis
u/ben9801 · 29 pointsr/todayilearned

So make a project, that's how I learned ios dev. Think of a project you want to do and work on it bit by bit, learning along the way.

Also cookbooks are great for exactly this; they outline a project and post the complete code along with a bit of instructions as to what is being done and why.


Here is a textbook that can really help, you can find it for free 'online':
http://www.amazon.ca/Python-Cookbook-David-Beazley/dp/1449340377

Also the 'learn python the hard way' text is only something like 300 pages and gets pretty extensive with the projects towards the end.

u/trimbo · 28 pointsr/programming

Yep. It's been a while, but I think the process you're talking about is all documented in Rapid Development from when McConnell was at Microsoft. I think it was called "Spiral"?

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/sleepbot · 24 pointsr/AcademicPsychology

For a stats program, I recommend learning R. It's free and powerful. No need to worry or wonder whether your university will have a license, as you would for SPSS, SAS, STATA, etc.

If you really have no stats background, you might find Andy Field's popular book series Discovering Statistics to be a good place to start. He's re-written this for several stats programs, but you'd want the one called Discovering Statistics Using R. That should be plenty to keep you busy. If not, then go a bit more into factor analysis, structural equation modeling, and Bayesian statistics.

u/cfors · 22 pointsr/datascience

Designing Data Intensive Applications is your ticket here. It takes you through a lot of the algorithms and architecture present in the distributed technologies out there.

In a data engineering role you will probably just be munging data through a pipeline making it useful for the analysts/scientists to use, so a book recommendation for that depends on the technology you will be using. Here are some of my favorite resources for the various tools I used in my experience as a Data Engineer:

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/benr783 · 18 pointsr/jailbreak

If you don't have any prior knowledge with programming, I'd first recommend learning Python. If you do have programming knowledge, then jump straight into ObjC. I read these 3 books and my Objective-C knowledge grew so much. I highly recommend reading these books.

Book One

Book Two

Book Three

I'd recommend reading these books in the order I listed them.

After you have read those books, you'll want to get friendly with theos. Theos is what you will use to make your tweaks. Learn how to install/use it here: http://iphonedevwiki.net/index.php/Theos/Getting_Started.

Now, you can look at open source tweaks. There is a great place to see a lot of them: http://iphonedevwiki.net/index.php/Open_Source_Projects.

Once you are comfortable, get started writing tweaks!

Always feel free to PM me if you need any help or have a question. :)

u/RetroTK2 · 17 pointsr/Unity3D

> I know programming

I have a checklist I usually bring out at this point :) You should know:

  • understanding different basic data types (ints, floats, bool, string) and how to manipulate them (especially strings)
  • understanding the difference between properties and fields.
  • If and switch statements
  • Ternaray Operators
  • Basic Mathematical Operators (*, +, =, etc);
  • understand the difference between = and ==, and not operators (!(true) and !=)
  • Advanced Mathematical Operators (+=, % for modulus , << left bit shift operator)
  • Arrays and Lists
  • Dictionaries and Keypairs
  • Understanding objects, classes and constructors
  • New Keyword
  • Access Modifiers and Static
  • Understanding references and null values
  • Inheritance
  • Indexers
  • Namespaces and using
  • Partial Keyword and why it's a good idea to limit the use of it
  • Abstract classes and interfaces
  • Delegates, Events, Action and Func
  • Understanding generics and using <T>.
  • Casting types with 'as' or direct and understanding the difference
  • Serialization
  • Comments and Regions
  • Threading
  • ref and out keywords and why they can be bad to use
  • IEnumerable and Yield Return
  • Enums and flags
  • Understanding Loops (while, foreach, for and do) and the differences between all of them
  • continue and break keywords and how to use them in loops
  • try,catch and finally
  • Understanding methods: void, return types and parameters
  • overloading methods
  • Knowing what the params keyword is and how to use it in methods
  • what virtual and override are and how they can be used

    If you confident you have all this you'll probably want to start learning about design patterns and decoupling techniques. This free online book is amazing, and I would recommend it to everyone:).

    Other books like Clean Code and The Art of Unit Testing have helped me a lot too.

    With coding, it because more about creating code that is easy to change. I would also recommend using StrangIoc along with MVC to achieve decoupled, clean code:)
u/rockstar_artisan · 15 pointsr/programming

Can't speak for the whole subreddit, but my personal hatred towards him comes from Martin being a snake-oil salesman.

Take his 3 "laws of TDD". Advertised as a practice equivalent to doctors washing their hands, results in horrible and unmaintainable test suites (I've seen plenty of tests whose idiocy couldn't be explained other way than those rules)

Take his "architecture" lectures. Advocating programming in ruby on rails while abstracting away everything about rails or the web or the database, or anything you didn't define yourself. In principle to enable testing and be able to run the code outside the web. In practice: https://youtu.be/tg5RFeSfBM4?t=299 The lecturer says that the architecture in practice is "horribly complicated" and that Bob had only a single implementation of the architecture, which he couldn't share. That didn't stop him from continuing with his lectures.

Take his blogposts (an example: http://blog.cleancoder.com/uncle-bob/2017/03/03/TDD-Harms-Architecture.html) Awful strawmans (this terrible architecture i drew is what you propose), cringeworthy writing style (lengthy discussions with made up opposition instead of real one). Unfalsifiable theories: "Is is only programmers, not TDD, that can do harm to designs and architectures.". That sentence is always true, either you succeeded and therfore TDD works, or you failed and TDD had nothing to do with it. No data to backup his claims "TDD works." - well there are plenty of publications that disagree (see chapter 12. of https://www.amazon.com/Making-Software-Really-Works-Believe/dp/0596808321)

Take his SOLID principles. While some of them are well defined and can be applied meaningfully (Liskov substitution principle), the Single Responsibility Principle has definition so weak and useless it's ridiculous.

u/tulip_bro · 13 pointsr/C_Programming

Chris Wellons blog series is good for minimalist C library design, and he has excellent examples on his Github too: https://nullprogram.com/blog/2018/06/10/

For a more opaque approach, check out: https://www.amazon.com/Interfaces-Implementations-Techniques-Creating-Reusable/dp/0201498413

u/Neurotrace · 12 pointsr/IWantToLearn

I would suggest starting with C++ since it has classes and beginners seem to grasp classes pretty easily.

  1. Setup an IDE.

    a. Download Visual Studio Express if you're on Windows, CodeBlocks if you're on Linux, or Xcode if you're on Mac.
  2. Work through some tutorials to see if you're really digging it.
  3. Pick up C++ Without Fear and work through the examples.
  4. ???
  5. PROFIT!
u/wrelam · 12 pointsr/C_Programming

C Interfaces and Implementations has some decent advice for designing C programs. This is also a skill which you 'll develop with time (e.g. over your entire career) so don't worry too much about figuring it out immediately; it requires experience. As you work on various projects you'll get a sense for what works and what doesn't so that over time you'll have developed strategies for solving particular types of problems.

OOP concepts are still valid even though C may not have ways to necessarily implement them within the language proper. Object-Oriented Software Construction is a fantastic book for learning OOP concepts. As your C experience grows, you'll begin to see ways of implementing some of those design strategies with C, even though it's not an OO language.

Knowing when to use what type of data structure can also aid in simplifying your code base. The standard book for this is CLRS, but for C specific implementations and advice, see Algorithms in C.

u/[deleted] · 12 pointsr/agile

Meta-analysis of over thirty studies found no consistent effect from TDD. One clear finding was that the better the study, the weaker the signal.

Greg Wilson's lecture: http://vimeo.com/9270320
and book http://www.amazon.com/Making-Software-Really-Works-Believe/dp/0596808321

Wilson's post about the subject: http://www.neverworkintheory.org/?p=139

>I’m still not sure what to think about test-driven development. On the one hand, I feel that it helps me program better—and feel that strongly enough that I teach TDD in courses. On the other hand, studies like this one, and the other summarized in Erdogmus et al’s chapter in Making Software, seem to show that the benefits are illusory. That might mean that we’re measuring the wrong thing, but I’m still waiting for one of TDD’s advocates to say how we’d measure the right thing.

u/kdawkins · 12 pointsr/csharp

Great question!

A lot of intro classes skip over the 'why' and 'how' of programming languages. Lets backup for a second - the purpose of a programming language (C#, Java, etc.) is to abstract away the actual machine code that runs on the hardware. It would be a very difficult and tedious task to write large applications in machine code. This is where the compiler comes into play; even though we have these great high level languages, hardware still only understand machine code. The compilers job is to take statements that we write in high level languages and turn them into machine code.

Now, keeping in mind the above - back to your question. All of the specific words you are wondering the meaning of are keywords the language has. They are reserved for a specific function/meaning and help the compiler understand various traits about the code you are writing (context, control flow, etc.).

String - A String is a type and a type describes to the compiler what kind of data you are working with. In this case, a string means text (words, sentences). That's why variables that are of type String usually have the " ".

Console - (I am assuming that you are referring to the class here) The console class is a group of methods that tell the compiler how to interact with output on a terminal (the black window with a blinking cursor). You can use any methods (like WriteLine) to tell the compiler what you are trying to accomplish. Classes like this save us a lot of time, there is no need to always re-invent the wheel and write I/O code.

Namespace - This is one of the context keywords I eluded too above, it tells the compiler the scope of variables and expressions that you are writing.

Main() - This is a method name! It is a very important method because it is the entry point for an executable!

? - This is the funny one - The question mark operator is actually shorthand for an if/else control flow fixture. If the variable to the left of it evaluates to true, the first expression is executed, otherwise the 2nd. https://msdn.microsoft.com/en-us/library/ty67wk28.aspx

Pro Tip - MSDN is your friend! Microsoft has a lot of great documentation on C#... how did I find the above link? I googled "C# ? operator". Also, if your text book is not working out for you, see if your library has access to the C# 5.0 in a Nutshell book

u/dev_bry · 12 pointsr/learnprogramming

You've already done the first step: admitting that college can only teach the fundamentals while the rest of the things you need to know, you will learn while working.

With that out of the way, here's the next step: apply the Joel Test to your new employer.

If it gets an 11 or 12, you'll be fine. Find a senior developer there to mentor you and you'll be a decent software engineer in 1 - 2 years.

Otherwise, while you might learn a lot of new stuff in your first job, they might be inadequate, outdated, or outright incorrect. In this case, plan an exit strategy ASAP so that you can leave to another company that has a much higher score in the Joel Test. In this fast paced software industry, it makes no sense to spend 5 years in a company where you'd only get to grow the same amount as another guy who just spent 6 months in a better company.

Next step: read. No, not those "Teach yourself [insert language that will be deprecated in 2 years] in 24 hours" books - find the books that teach software engineering, lessons that don't get outdated. Here's the usual suggestions:

u/brotherMotty · 11 pointsr/learnprogramming

(Copy pasting from other thread).

I stand by this JS roadmap, especially because I tested so many different free courses online (and subsequently wasted a bunch of time).

Rithm (https://www.rithmschool.com/courses)

  • Awesome for going from 0 to beginner/intermediate; possibly the best fundamentals I've found

  • Doesn't hand hold so it teaches you how to think

  • Writing is friendly and understandable

    Eloquent JS (http://eloquentjavascript.net/)

  • Great for solidifying intermediate

  • This is when you begin to learn "real" coding

  • Can be difficult to grasp, but with a solid understanding of the fundamentals, you should be good

    Secrets of a JS Ninja (https://www.amazon.com/Secrets-JavaScript-Ninja-John-Resig/dp/193398869X)

  • Great for going from intermediate to advanced

  • If you've methodically mastered the previous two, you will be good. Really deepens your understanding and sharpens skillset

    Finally, if you supplement all this with Codewars (https://www.codewars.com/ , allows you a bunch of puzzles/katas to check your level as you progress; great because you can go back and see how your skills have actually improved, you'll definitely cringe at some of your old code, ha), it's a pretty fucking awesome roadmap to get you from 0 to advanced, though like most things it'll take a lot of work.

    I've also heard good things about Free Code Camp, though I've only checked it out briefly so I can't give in-depth comments on it.

    Hit me up if you have questions, always down to help others get started.
u/geek_on_two_wheels · 10 pointsr/csharp

Pro ASP.NET MVC 5 (https://www.amazon.com/gp/aw/d/1430265299) is an excellent book for getting started with the web side of .NET.

For C#, it depends: do you have any experience with other languages?

u/Monory · 10 pointsr/GradSchool

I've really enjoyed Discovering Statistics using R by Andy Field. The book is written more like prose than a textbook, and is rarely dry. It requires you to learn how to use the R programming language as well, but I think it is very worth it. Everything he teaches, he teaches it at the conceptual level first and then shows you how to perform the tests using R. A great bonus is that R is great for data visualization, and being able to visualize large data sets quickly really helps get a better understanding of the data you are working with, which helps learn the theory.

u/woodforbrains · 9 pointsr/AcademicPsychology

An EXCELLENT response. I'm a research psychologist and I think that is an absolutely fair summary of what to expect if you go the grad school route.

As far as "what you're expected to know", this will vary by which of the four options you choose; the best RAs i've mentored are always interested in two things: stats and current literature. Google Scholar your favorite topic in psychology and the backwards/forwards links will connect you to a wealth of ideas. As for stats, they get a bad rap, but i can suggest a few books that might turn around anyone with stats-loathing:

-Andy Field's SPSS/R how-to books. Honestly, the man has probably done more for beginning psychologists than Starbucks. Very readable, even good for more developed psychologists to get ideas for new analyses.
http://www.amazon.com/Discovering-Statistics-Using-Andy-Field/dp/1446200469/ref=sr_1_2?s=books&ie=UTF8&qid=1419965487&sr=1-2.

-Mac & Creel: Bible for signal detection theory, a cool way of thinking about perception as a process of separating signal from noise.
http://www.amazon.com/Detection-Theory-A-Users-Guide/dp/0805842314

u/trngoon · 9 pointsr/statistics

You must learn an application heavy book in 2018. Preferably in R unless you can program, in that case maybe Python.

I will link you two perfect books with very little math that people from any discipline can understand and are very well written. Both heavy on application in R with accompanying websites with all the code. (dont worry, R code is easy and the vast majority of R users are not programmers in the traditional sense). The first book I link does go into some more advanced topics, but everything is explained in a very common language. Its accompanying website also has lecture videos from the prof who wrote it.

https://www.amazon.com/Discovering-Statistics-Using-Andy-Field/dp/1446200469

^^ I emailed andy some time ago and he wants to release edition 2 next year probably

https://www.amazon.com/Understanding-Applying-Basic-Statistical-Methods/dp/1119061393

Trust me, these two books are what you want to look into.


NOTE some idiot is going to try to suggest to you a book called "Introduction to statistical learning" (mainly a supervised machine-learning book which is stats-focused) by the standford stats team. Do not start with this book if you want to learn traditional stats (like you point out in your post). No one who recommends you this book has considered your needs. I see this recommended every single day for all the wrong reasons. It actually makes me frustrated. It's a great book but has confused many people because of its name. Is it a stats book? Yeah. Is it an ML book, yeah? Is it a traditional stats book? Nope. Anything that says "_____ learning" is probably a machine learning book. Sorry for the rant.

u/tmckeage · 9 pointsr/csharp

I think some of these are a bit to specific for an entry level position where they know you have no experience ahead of time.

Whats your background in strongly typed languages?

This is a copy paste from a previous comment I made to a similar question I saw in the past:

If they are aware of your lack of knowledge I would focus less on the specifics of C# and more on programming basics, principals of OOP, and what it means to be a strongly typed language...

  1. have a strong grasp of the following: if, else, switch, while, do, for, foreach
  2. understand how to properly use recursion
  3. understand the difference between a reference and value type

  4. Know what the following are: Constructor, Property, Method, Member
  5. Understand how the class object is instantiated
  6. Have a basic understanding of inheritence and interfaces and how they work
  7. Have a basic grasp of the following keywords: public, private, class, new, static, void

  8. know the majority of the c# primatives (int, bool, long, short, string, etc)
  9. Understand how StringBuilder, DateTime, and TimeSpan are used
  10. Understand how a string is an immutable reference type

    I suggest the first four chapters of
    http://www.amazon.com/C-5-0-Nutshell-Definitive-Reference/dp/1449320104

    Also as a note I was in a similar situation, hired as an intern with no c# experience and basic python experience. They know you don't know shit, whats important is when someone explains something to you that you have the vocabulary to understand what they are saying.
u/arsenalbilbao · 9 pointsr/learnpython
  1. if you want to LEARN how to write programs - read "Structure and interpretation of computer programms" on python - SICP (project: you will write an interpreter of "scheme" programming language on python)

  2. if you want to TRAIN your OOP skills - Building Skills in Object-Oriented Design (you will code 3 games - roulette, craps and blackjack)

  3. Helper resources on your way:
    3.1. Dive into python 3 (excellent python book)
    3.2. The Hitchhiker’s Guide to Python! (best practice handbook to the installation, configuration, and usage of Python on a daily basis.)
    3.3 Python Language Reference ||| python standard library ||| python peps

  4. if you want to read some good python code - look at flask web framework (if you are interested in web programming also look at fullstackpython

  5. good but non-free books
    5.1. David Beazley "Python cookbook" (read code snippets on python)
    5.2. Dusty Phillips "Python 3 Object Oriented Programming" (learn OOP)
    5.3. Luciano Ramalho "Fluent python" (Really advanced python book. But I haven't read it YET)

  6. daily challenges:
    6.1. r/dailyprogrammer (easy, intermediate and advanced challenges) (an easy challenge example)
    6.2. mega project list

  7. BONUS
    From NAND to tetris ( build a general-purpose computer system from the ground up) (part1 and part2 on coursera)
u/WellThenScrewIt · 9 pointsr/ReverseEngineering

Learn to write simple C programs. Then debug your own C programs, preferably in OS X or Linux using gcc/gdb. Then disassemble your own C code (learn how to disable optimization in the compiler; try it with no optimizaiton and then with increasing levels). Then look at C++ and (gasp) Visual BASIC and such. Turns out a ton of malware is written in these languages, and the snarl of garbage that you'll uncover that is just part of the auto-generated message handling stuff for VB will astound you, so don't start there...but it's important to understand those structures when you see them.

Then follow tutorials about reversing other programs. There are great books on this.

It helps a lot to know assembly language, but you'll tend to pick it up as you go.

You'll want better tools than just command-line disassemblers. I prefer IDA Pro.

There's a great book that uses IDA Pro with many examples to address precisely your questions.

Here's another great book on malware analysis that covers all kinds of tricks you might bump into when working on real targets.

I see all this as a long-term iterative exercise. It's fascinating.


u/cpp_is_king · 9 pointsr/gamedev

Yea, I actually recommended one in the post above. Here's a direct link though

I'm recommending this only because it's the one book on the topic that I've read and it was really good. There's others too, like this one, but I haven't read them so I can't comment.

Any book about reverse engineering can only teach you the most basic things. But it teaches you enough that once you're on your own, you aren't lost. If you want to develop the skills further, just start disassembling OS functions and figuring out how they work.

Another book that's tangentially related is this one. It isn't about reverse engineering specifically, but rather about debugging (usually without source code), which is obviously a critical skill.

u/emtuls · 9 pointsr/netsec

Hey /u/Xerack! I'm the original author of the post linked here.

Appreciate the feedback! If you think I could clarify anything better, please let me know.

As far as resources for Reverse Engineering, I can provide you with a baseline that I would recommend starting with.

x86 Assembly:


If you don't know assembly language at all, this list of videos was where I picked up a decent amount of x86 assembly language.


A few good books would be:


  • Hacking: The Art of Exploitation I am a huge advocate for this book. I learned a lot from this and have read it multiple times. It is written very well and teaches someone with no experience how to do C programming and assembly. This is mainly a book for learning exploitation/vulnerability research, but that can play hand and hand with Reverse Engineering. It will show you the assembly language break down of basic exploits and this can help you with RE.

  • Practical Reverse Engineering I read through the beginning of this book and it gave me some good foundations of understanding memory and computer architecture for RE along with assembly of course

  • Secrets of Reverse Engineering This book is a bit in depth, but the beginning gives another good foundation for Comp Architecture and assembly stuff.

  • The IDA Pro Book Haven't personally read this book yet, but I have been told it is the defacto standard for learning IDA Pro, and it has examples you can learn from.

    Hands On:


  • Legend of Random Very useful hands on with tutorials. Mainly based on cracking, but that requires reverse engineering. Highly recommend this!

  • Lenas Tutorials Again, another awesome hands on tutorial, mostly based on cracking as well.

  • Crackmes These are more of challenges once you start to have a little understanding down

    Courses:

    Tons of courses on youtube. I learn well from visual, so I recommend these youtube videos:


  • Basic Dynamic Analysis
  • Real World Decompilation There are a few videos to this series and he disassembles a game, definitely nice to learn from.


    Beyond that, Google will always be your friend, and /r/reverseengineering. I also have a bunch of material for Malware RE, but that's a bit different than Software RE, though it is relatable.
u/jodevgn · 9 pointsr/csharp

I found this book to be incredibly helpful: https://www.amazon.com/Art-Unit-Testing-examples/dp/1617290890/ref=sr_1_1?ie=UTF8&qid=1500721325&sr=8-1

It's not so much about Test Driven Development, but focuses more about how to organize and write unit tests and fakes. Has a lot of discussions pro and con regarding things you may run into. It also compares unit testing frameworks. Keep in mind that the book is over three years old now, so those comparisons may or may not hold up as well anymore. Doesn't detract from the rest of the book though.

u/atdk · 9 pointsr/Python

Here is my list if you need to become a good programmer with Python as your language of choice.

Follow this order for rigorous course on learning Python thoroughly.

u/cbm1745 · 8 pointsr/aggies

C++ is the language used! It's not too hard of a class if you have any programming experience. And even if you don't it's not bad, it's meant to teach you the basics. I went through some of this book he summer before and learned almost everything we did in that class ahead of time and it made it a breeze! Good luck!

u/TransFattyAcid · 8 pointsr/webdev

The agile principles are based around the idea of iterative development. This invites what you're calling rework to make the product the best it can be.

Obviously, you're coming at this from a place of frustration because you want to meet deadlines but the "simple" solution is to build all these steps into your estimates. If you're not setting the deadlines, then you need to be up front with your manager about what you can get done in the given time. Maybe it'll work, but not be clean code (the P.S. here is that after it ships, you need time to make it clean). Maybe you can get features X and Y done, but not Z.

Refactoring and code reviews are part of the job. Yes, your manager is going to make suggestions you might not agree with and, yes, the senior devs are going to send you back to the drawing board sometimes. Sometimes it's because they're jerks and sometimes it's because experience has taught them something.

All in all, I'd recommend reading any of the following by Robert Martin. Clean Coder is perhaps most relevant to estimates and deadlines but they're all really helpful.

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/c3261d3b8d1565dda639 · 7 pointsr/programming

I think posting material like this with no context is silly, but I upvoted this anyway because I recommend these books often. The Introduction is very short and explains better than I could here why the books were written. The quality of the chapters vary, but they are mostly all worth reading. I'm excited for the upcoming The Performance of Open Source Applications, although I haven't heard any news about its progress in a long while.

One of the editors, Greg Wilson, did some research into how we can be effective programmers. Basically, continuing the research that books like Code Complete were based on. He wrote an excellent book Making Software: What Really Works, and Why We Believe It. He is also involved with the community blog It Will Never Work in Theory, which is tag-lined as software development research that is relevant in practice.

u/xCavemanNinjax · 7 pointsr/java

It's very difficult to answer your question in a single post. You should know the basics of Java of course but what you will be able to do will be limited by what you know. I suggest picking up a book and using online resources and just jump in, get started! You'll learn along the way.

Book that helped me a lot:
http://www.amazon.com/Professional-Android-4-Application-Development/dp/1118102274/ref=sr_1_1?ie=UTF8&qid=1409582592&sr=8-1&keywords=professional+android+development

and Android development ground zero:

http://developer.android.com/index.html

u/emcoffey3 · 7 pointsr/webdev

I'm a big fan of JavaScript: The Good Parts. I'm not sure if it is quite intermediate, but it is a terrific (and short) read.

Secrets of the JavaScript Ninja is a bit more advanced. It's written by the guy who created jQuery. I found some of the coding style to be sort of strange, but it does have a lot of great information.

u/BinMapper · 6 pointsr/Malware

Some resources which will indirectly help you for GREM

https://amzn.com/1593272901

https://amzn.com/1118787315

https://amzn.com/1593272898

u/affectation_man · 6 pointsr/programmingcirclejerk

Um... that's what the 2012 book Secrets of the JavaScript Ninja is all about. It chronicles Intel's development of the Core 2 architecture, their first to have JS inside, which enabled them to give AMD a trashing they have still not recovered from.

u/rjett · 6 pointsr/javascript

Advanced

Medium

Old, but probably still relevant

Yet to be released, but you can get the in progress pdf from the publisher

Docs

The one that everybody recommends

HTML5 spec

HTML5Rocks

Latest Webkit News

Other than that build build build. Make demos and play. Ask questions here or on stackoverflow and read other people's code. Also, lots of great old JSConf videos out there.

u/itacirgabral · 6 pointsr/brasil

Fui monitor de web na facul. hoje trabalho mais com backend em nodejs. Javascript é a base e sempre vale a pena ter os fundamentos bem sólidos. Gosto deste livro, baixe aqui.

Com githubpages você consegue ir longe e de graça, meio que já é o padrão do desenvolvedor ter o seu portfólio ai. Você faz seu site estático e hospeda nesse lugar. Github é um site que fornece serviço de git, que é tipo um dropbox pra código. Vale muito a pena, dai tu compra um domínio por 40 reais e bota um email nele de graça.

u/ProgrammingThomas · 6 pointsr/iOSProgramming

Apple's own guide to Objective-C isn't awful. If you need some quick comparisons between Objective-C and Swift, I wrote up a bunch of equivalent code snippets a while back. You may also find the following useful:

u/steveklabnik1 · 6 pointsr/rust

> there are real studies

have you read http://www.amazon.com/Making-Software-Really-Works-Believe/dp/0596808321 ? It's really interesting.

u/gospelwut · 6 pointsr/learnprogramming

I personally thought Pro C# and the .NET 4 Platform was pretty good, but most people would turn you to C# In-Depth simply because it's by Jon Skeet, which is sound reasoning in and of itself.

u/DutchPhenom · 6 pointsr/AskEconomics

Now this is an interesting and difficult question, which depends on many things. For starters, if you find this process frustrating that is unfortunate, because learning how to code is usually a trail and error + revise your work process. In other words, its supposed to be both frustrating and rewarding, like a hard (text-based) video game. For me its half of the fun.

What you want to learn really depends on the context. If you are really diving into econ, Stata is still very common. More stats-heavy, new, or interdisciplinary fields tend to use R. If you work with big, live datasets, or work with computer scientists, learning Python is always a plus. But obviously start with one.

I am proficient in stata simply because I had classes in it, it is difficult for me to advice how to self study. I learned most of the basics through An Introduction to Modern Econometrics Using Stata, and later on most of my R through R for Stata Users (Statistics and Computing) . I also learned some R through Discovering Statistics Using R, but I find Field obnoxiously failing to be funny, so I wouldn't reccomend it.

I'm now in the process of learning more Python, to do some more programming work on the side. As a start I used Learn Python 3 the Hard Way recommended to me by a very proficient friend of mine. This however does not give you much of an intro to stats in python, only the very very simple basics you can use as a vantage point for further work.

If you have learned the basics, tbe hest way to learn more is just to fool around. What is your field of interest? I like a lot of macro, so I used to just go to Quandl, pick some free databases, import them, and run some fun stuff. This is the best way to learn, especially if you for example try to merge free World bank databases with a different database from Quandl, as it will give you a lot of errors whilst merging and conversion problems later on.

If you are a bit more proficient you can start using websites like upwork to get some assignments. Usually it doesn't earn you much at the start, but the experience of actual assignments is the best way to self-teach. A different manner I like to do (if you are still studying) is offering your services (for free) to a professor. Ask him/her if there are still projects they are working on for which they need some to look at. Usually you will be treated solely as someone for the code, but it generally gives you a lot of experience and the right contacts.

These are just some of my thoughts. If you could provide some more context of where exactly you want to go, I could go into more detail.

Edit: What I forgot to say is that if it is not possible to study a course, I would recommend doing at least one MOOC to get you at a basic level.

u/datadude · 6 pointsr/datascience

I have an excellent statistics text book that I am using to learn stats: Discovering Statistics Using R by Andy Field. My approach is to do the exercise in R first, then try to reproduce the same result in Python. It's slow going, but it's a real learning experience.

u/Jake_JAM · 6 pointsr/statistics

I like Discovering Statistics using R . Great book for learning the basics of hypothesis testing, a little bit of math, and you learn how to do it in R; not to mention there are a few bits you’ll chuckle at. There are also other books for other programs in this series (SPSS, SAS).



u/NudeRanch · 6 pointsr/AskStatistics

This book is a amazing:
Discovering Statistics Using R
by Andy Field


If you are doing self-study, it is easy to lose momentum. This book is hilarious, personal, and transcends the textbook genre.

Amazon Link

u/periphrasistic · 5 pointsr/OSUOnlineCS

Hmm, I had a very different impression: I thought that Architecture & Assembly and Networks were the two best courses in the program, that Data Structures, Algorithms, and Operating Systems would have been among the best had they been taught a little better (for the former) or were more rigorous (for the latter), and that the Software Engineering courses, along with Web Development, Databases, and Mobile/Cloud were the worst courses in the program.

For SE I, the primary problem, as I saw it, was that the information was either badly out of date, or covered in such cursory depth as to be useless. The course is heavily based upon the optional textbook, and if you actually read the textbook, you'll quickly discover that the overwhelming majority of the research being cited and presented is from prior to 1990, and hardly any of the citations are from after 2000. Likewise, the course focuses heavily on software development process models, specifically Waterfall and Extreme Programming. However, neither process is particularly popular in the 2016 job market; most organizations at least nominally use some form of Agile methodology, but generally not particularly well. In any event, the process model used by your organization will likely be something you learn on the job. Finally, the course almost completely ignores issues of coding style and writing code that can be easily understood by other developers (which is an entirely different skill than writing code which will pass a grading script), and the sections on system design and object-orientation, which should be the heart of a software engineering course, are entirely cursory. SE I is sadly a required course, but if you actually want to learn software engineering, you are far, far better served by carefully reading Robert Martin's Agile Software Development and Clean Code.

The less said about SE II, the better. That course is a disorganized mess and OSU should honestly be ashamed to charge money for it (the bulk of the course content, in terms of lecture time, consists of links to two free Udacity courses).

u/madsci · 5 pointsr/C_Programming

You absolutely should make it modular, it just takes some different techniques to do it. C Interfaces and Implementations covers that topic in some depth.

u/eric_weinstein · 5 pointsr/ruby

> Failing that, are there any good cheatsheets/references for JS "gotchas" and unusual features that devs from other languages might not be familiar with?


There are entire books dedicated to this! (Also some entertaining talks.)


Here are some good JS books not aimed at total beginners:


  • JavaScript: The Good Parts
  • Professional JavaScript for Web Developers
  • Effective JavaScript


    Bonus (to give you a sense of the kinds of "gotchas" you'll find in JS):


    // Even though you pass in numbers, JS sorts them lexicographically
    > [5, 1, 10].sort();
    [ 1, 10, 5 ]

    // You "fix" this by passing in a custom comparator
    > [5, 1, 10].sort(function(a, b) { return a - b; });
    [ 1, 5, 10 ]

    // This probably makes sense to someone, somewhere
    > Math.min();
    Infinity

    > Math.max();
    -Infinity

    // Some things are best left unknown
    > {} + {};
    NaN

    > var wat = {} + {}; wat;
    '[object Object][object Object]'

    Here are a bunch more in quiz form.
u/rDr4g0n · 5 pointsr/javascript
u/enkideridu · 5 pointsr/web_design

>How do you get clients?

80% of my clients I've met via reddit (/r/forhire, /r/torontojobs , most often from people responding to my posts, sometimes months after I post them). A few others were met through friends who worked at the company

> do you charge for the price of a domain an hosting or do you expect the client to take care of it

Depends on the client. Ask them if they want you to take care of it for them.

> I won't want to sound super shady to anyone who might be interested in getting a webpage built by me.

Have a list of prior work, social media presence helps (twitter, linkedin, github). Your portfolio doesn't have to be a website. I send a bulleted list

Having your own domain name for emails should also help. Google Apps is just $50/year.


>I have experience in HTML and CSS

Learn Javascript. At least a little bit. I'd recommend reading this book cover to cover : Effective Javascript by David Herman, a chapter a day, it'll take you 2 weeks, maybe 3.

u/hashcode · 5 pointsr/learnprogramming

"The whole OOP side" is the most important thing for understanding how Rails works. I mean, apart from the object hierarchy, there's nothing to it. Rails is a framework, and you use it just like any other collection of objects.

I am inferring from your reading that you think of OOP as something hard to learn. It's not! It's really simple, though if you're brand new to all of this it may seem like information overload. But really, it's nothing compared to learning Rails.

If you're new to web development, learning Rails is going to be hard. There's a lot to it. In order to really understand Rails you have to understand HTML, CSS, templates and dynamic HTML, probably JavaScript, database access which means probably SQL as well, and any number of other things. The difference between a client and a server. It's not easy.

But that doesn't mean you can't learn it. Hell, every web developer today has been in the situation of feeling overloaded by all the different pieces, and they all got through it. So can you.

But it might be a lot to tackle if you're new to programming (by which I mean you've been coding regularly for less than six months). One thing at a time might be best to prevent burnout.

If you want to learn Ruby, what follows is the sort of advice that everyone gives and everyone ignores, but I'm posting it anyway because I really believe that it's the best thing you can do (it's what I wish I did when I was learning how to program):

Read The Ruby Programming Langage.

It's short.

It's co-written by matz, the creator of Ruby.

It describes everything in the language.

Read it once straight through. Expect to understand about 20% of it. That's okay. There's a lot of stuff like unicode support details that you really don't care about. That's okay too. Skim that. The point is that, after reading it, you will know everything in the language. There will be nothing that you've never heard of.

You probably won't understand the difference between a block and a lambda and a proc after one reading, but you'll know that there are things called blocks/lambdas/procs and they're similar but subtly different and later on when you encounter them in the wild you won't be surprised at their behavior. You'll be able to say "Hey, I know that thing. That's a block." And then you'll be able to google "ruby blocks" and find out more.

Once you've read it, you will have no unknown unknowns. You can go out and code away for a few months, maybe work all the way through Learn Ruby the Hard Way, and later on come back and re-read. This time you'll understand 90-100% of it.

Intimate familiarity with your language of choice is important if you're in this for the long haul.

Edit: I realized that I didn't really answer your question directly: you should learn all of Ruby. It is not as hard as it sounds. Now, you shouldn't necessarily learn all of Ruby and then start learning Rails. You'll be learning a lot of Ruby as you go along, and before too long you'll stop running into new concepts. But never stop improving your Ruby knowledge until you've learned everything there is to know. You'll never know "enough" Ruby until you know it all.

u/enry_straker · 5 pointsr/ruby

It's been too long since i read Programming Perl but "The Ruby Programming Language" is the book that i use the most.

While the Pickaxe is good, you can't beat the pedigree of "The Ruby Programming Language" what with Yukihiro Matsumoto aka Matz aka The guy who created the ruby programming language in the first place, co-writing the book along with Mr.Flanahan.

Amazon_Link

u/evansenter · 5 pointsr/ruby

As the other posters have mentioned, I develop with Ruby as a day job doing web development on the Rails platform. That being said, I also used Ruby throughout college to do machine learning programs, genetic algorithms, and bioinformatics work. In general, Ruby's great for anything you want to just get done, without worrying about the contortions that some of the other explicitly focused languages put you through. Just having a REPL loop like IRB is great for very quickly trying things out.

That being said, Ruby is not good at any heavy computation. I don't care which version of Ruby it is, it's still slow for any heavy number crunching, so if you're going to be working with heavy datasets, it's best to pick your battles. As you've said you're just getting into programming, I would - rather than worry about if Ruby is the right language for you - just pick it up and learn with it. Certainly we aren't tied down to just using the bike on which we first learn to ride, and the same goes for languages.

If you have some *NIX / programming experience, I've heard great things about http://github.com/edgecase/ruby_koans

If you like to buy books, http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177 is the best and only Ruby book I'll bother owning. I have a short attention span (except when writing comments, apparently) and have found all other resources laud on and on about how great Ruby is, rather than tell you anything about it. Otherwise, they read like a dictionary. Not useful for me.

You've probably had it recommended, but if you like cartoon foxes, bacon, and a lot of comedic nonsense in your learning, check out http://mislav.uniqpath.com/poignant-guide/book/ - it's a quite fun way to get exposure to the language!

Ultimately the first steps are the hardest - and the best way to move forward is to set a goal. Perhaps write a program that takes a number n, and tells you what the _n_th prime number is. Certainly not the most exciting program, but something that can be improved on, etc etc.

u/shinigamiyuk · 5 pointsr/learnprogramming

I think maybe The Ruby Programming Language would be as close to K&R for ruby that you could get. Unless someone has something better.

u/vivalasteve · 5 pointsr/androiddev

As others had said, talk to another developer to see if it is even possible to make another Facebook app.

Other than that, if you have absolutely NO programming experience, learn the basics of Java first. I didn't have too much experience in Java, per se, but I was well versed in Python and Perl so picking up another language wasn't difficult.

Once you have Java down, you could do a few things. First and foremost, definitely go here and follow the steps to download everything you'll need, as well as the beginners guide to making your first app which will explain the basics of how android works. The videos from The New Boston didn't help me all that much, but if you want to take a look it wouldn't hurt. If you want a book, I would definitely get this one. It's written by Googles tech lead for android developer relations, and it will explain everything android to you.

Other than that, just think of basic applications, such as a calculator, photo viewer, stopwatch, etc, and just make them with the help of stack overflow and googles documentation on android.

Good luck!

u/fartin_rulz · 5 pointsr/csharp

I thought Pro C# 2010 and the .NET 4 Framework was really good.

u/RICHUNCLEPENNYBAGS · 5 pointsr/learnprogramming

Web Forms is, in my opinion, a big mess. However, I think MVC is pretty good and I don't think it's hard to learn. I read the last version of this book and it was enough for me to start creating an MVC app on a two-man team (with me doing more than half the work) and have it ready to launch V1 in two months: http://www.amazon.com/Pro-ASP-NET-MVC-Adam-Freeman/dp/1430265299/

Anyway, relational databases are likely to be with us for some time (NoSQL is still pretty much a niche in my opinion) and "cloud" programming isn't really that different, other than that you can't really count on machine state. All that means is you have to write to a database or a separate file store.

edit: Another thought is that honestly the kind of practices you have to do for cloud Web programming are good ones anyway... even if you're hosting it yourself, not counting on machine state means you can have as many instances as you want, which makes it easy to scale. If you're relying on the machine state you have a much longer road to scaling as you have to figure out how to keep those in sync or else factor out all the code using it.

u/lanedraex · 5 pointsr/csharp

If you are familiar with javascript and java, you probably should just go straight into a web framework book(assuming you want to do C# web development).

Grab a book on ASP.NET MVC 5 or ASP.NET Core MVC.

If you have trouble understanding the language basics on these books, then go back and watch the MVA series and skip the things that you already know.

You can probably find some good resources on Pluralsight as well, if you want video stuff.

Searching the internet you will find many Microsoft code samples, so if you are familiar with web frameworks in general, maybe you can just dive into these samples.

u/last_alchemyst · 5 pointsr/rstats

I would recommend Discovering Statistics Using R. It goes through the math of the stats in a pretty solid way with example experiments and available data files if you want to work along with it. I have used the SPSS version with my intro and intermediate stats classes, so using it with R would be great. Plus, Fields is funny as hell.

u/ActionCactus · 5 pointsr/microsoft

I went to school for it, but I'll be the first to tell you that a fucking class isn't the best way to learn how to code. What kind of questions do you have?

If you're confused about why something like "System.out.println("Hi");" actually prints something to the console, I can explain to you what everything in that statement means (it's actually really intuitive and easy, and it's something professors usually don't tell you when they're introducing you to code writing).

If you want a recommendation on where to learn, Khan Academy and Code Academy are fantastic free resources, but another free service that I've found to be phenomenal has been [tutorialspoint.com] (http://www.tutorialspoint.com/java/). I also just recently purchased [a really good C# book] (http://www.amazon.com/5-0-Nutshell-The-Definitive-Reference/dp/1449320104/ref=zg_bs_697342_6); I like what I've seen in it thus far and if one by the same author exists for Java I'd recommend it.

All that said, by all means, ask me (or anyone else in this thread that'd like to answer questions) whatever you'd want. You also might want to check out /r/learnprogramming, and when you start getting to the more intermediate levels of programming stackoverflow.com is one of the best collab resources out there.

I'm not sure if mods would be okay with a programming question thread in this sub, so if you make a new thread somewhere else make sure to PM me so I can help answer your questions.

u/CrimsonCuntCloth · 4 pointsr/learnpython

Depending on what you want to learn:

PYTHON SPECIFIC

You mentioned building websites, so check out the flask mega tutorial. It might be a bit early to take on a project like this after only a month, but you've got time and learning-by-doing is good. This'll teach you to build a twitter clone using python, so you'll see databases, project structure, user logons etc. Plus he's got a book version, which contains much of the same info, but is good for when you can't be at a computer.

The python cookbook is fantastic for getting things done; gives short solutions to common problems / tasks. (How do I read lines from a csv file? How do I parse a file that's too big to fit in memory? How do I create a simple TCP server?). Solutions are concise and readable so you don't have to wade through loads of irrelevant stuff.

A little while down the road if you feel like going deep, fluent python will give you a deeper understanding of python than many people you'll encounter at Uni when you're out.

WEB DEV

If you want to go more into web dev, you'll also need to know some HTML, CSS and Javascript. Duckett's books don't go too in depth, but they're beautiful, a nice introduction, and a handy reference. Once you've got some JS, Secrets of the javascript ninja will give you a real appreciation of the deeper aspects of JS.

MACHINE LEARNING
In one of your comments you mentioned machine learning.

These aren't language specific programming books, and this isn't my specialty, but:

Fundamentals of Machine Learning for Predictive data analytics is a great introduction to the entire process, based upon CRISP-DM. Not much of a maths background required. This was the textbook used for my uni's first data analytics module. Highly recommended.

If you like you some maths, Flach will give you a stronger theoretical understanding, but personally I'd leave that until later.

Good luck and keep busy; you've got plenty to learn!

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/ShadoWolf · 4 pointsr/Futurology

chrome runs at user app level. it's not running in kernal space with rootkit-like functionality.


Google going out of there way to try and illegally spy on you is crazy. simply because any interested party can go and grab a copy of IDA pro and slap it onto chrome right now and do live disassemble the code base as it's running. Watch the stack calls, view library calls, and view network traffic.

But if the overly paranode type. Then go an investigate for yourself you have access to the tools and the books to self-learn the skills need to do so. Here a good jumping off point


http://out7.hex-rays.com/demo/request < request a trail evulation of ida pro

read this
https://www.amazon.ca/Reversing-Secrets-Engineering-Eldad-Eilam/dp/0764574817

this
https://www.amazon.ca/IDA-Pro-Book-Unofficial-Disassembler/dp/1593272898

and finally this
https://www.apress.com/gp/book/9781484200650


u/lingual_panda · 4 pointsr/cscareerquestions

Formatted version: (with a few edits)

>I am pretty new to this sub so excuse me if I go against the rules or formatting in any way.

>I am currently at a community college in NYC, majoring in Computer Science. Since I was a kid I was always fascinated by computers, how they worked and functioned. I always would tinker with the hardware or software. I even ran my own private server for WOW at the time (a big deal to me at that age).

>I entered college knowing I wanted to do computer science and I knew it dealt with a lot [of topics], not just coding or programming. When I got the prerequisites out of the way I was able to finally take a class that dealt with programming--intro to computer science--which aimed to ease you into coding through basic C++. My first week I was really happy and into it because I understood what was going on. I was ecstatic that I was actually doing some form of coding, basic or not.

>As the course progressed, I started to get lost and not understand anything. At that point I had no idea what was going on and before I knew it I had an F in the class. I talked to many people who had taken my professor before and not a single person said he's a good teacher. I have only heard negatives things about him, which is not an excuse for me to get an F in the class, but I told myself that I will retake the class and do my best next semester. (Btw if you are wondering all we did in that class was program the nim game and perfect it over and over.)

>Fast forward to next semester and I feel lost again although this time I put a lot of effort into the class and spent countless hours reading the book on my own and trying to teach myself. I even asked for help on /r/learnprograming and while I got lots of help there, I still could not understand many things. My main problem was that [even though] I could read the code and understand it, but I had a very tough time trying to write code for a specific problem, which seems to be a very common problem for many beginners. I messed up a lot in the class but at the end I received a B-, which is ok but I feel like I came out of the class without having learned anything.

>To make matters worse I start the advanced C++ course this fall and I'm terrified. To give more insight about my other teacher, he's very good at the lecture portion of the class but when it came to lab (where we actually did coding) he would give us a problem and just sit there at his desk. There were a lot of people who had problems with the class and a handful who knew what they were doing. Toward the end of the semester he told us that the college's program was very underfunded and that the photography major had more funding. He also told us that he disliked coding but was teaching it to us anyway.

>Sorry if this is dragging on or I'm not getting to my point quick enough but I wanted to give context to my current situation. So far from my experience with those two courses I feel very discouraged and scared. I have had the thought of switching majors countless times but I don't want to give up on CS. I am contemplating computer engineering because it combines computer science with electrical engineering. I will not only be coding, but working on hardware as well, which sounds like the best of both worlds to me. Then I think, if I can barely even make it in CS what makes me think I'll be able to do something harder?

>I am very scared for my future and just feel lost. I have contemplated switching to music production or audio engineering but those are only hobbies that I practice in my free time and I don't see much money there. I feel very scared as well that even if I manage to get a bachelors that I will just be sitting in a desk all day long killing myself and not having some sort of fun with my career, afraid that it will be a burnout job which a lot of people told me. Although I do understand that this all depends on the job you work in and the type of programs you write, as well as how much you even like programming to begin with.

>I apologize for this very long post but I guess I needed to vent and seek advice, also sorry if this is also poorly written as I am writing this in a rush because I need to go somewhere. To give further information I was using this book.

(I'm just watching an old episode of Mad Men with friends so I figured formatting this would be semi-productive.)

u/PajamaZen · 4 pointsr/learnprogramming

I used the first edition of this book years ago, the summer before university, and it helped me learn a lot of the basics.

u/stevewedig · 4 pointsr/androiddev

I think Uncle Bob's PPP Book is the original book from 2002. May be more options by now though.

u/phao · 4 pointsr/C_Programming

Right. But don't be so quick to judge. =)

The issue is that there isn't anything much better out there. A lot of the issues with teaching C is C itself.

C it a very simple language, maybe too simple. A lot of the safety in C is difficult because C doesn't give you anything to get that right. The solution to this is being very good at it, know what you're doing and avoid the problems. Modularity barely is possible in C (it is only through simple means). Dynamicity is a pain. All of these things that other languages simply support out of the box, you have to go through major hops in C so you get them.

From what I understand, most uses of C today only exist when nothing else is applicable. That is, when they really need the sort of benefits you get from using C, because the language itself isn't that great.

You could write whole books on getting modularity right in C, on getting dynamicity right in C, on getting security right in C, and so forth. And in fact there are:

u/ThomasPtacek · 4 pointsr/programming

If you're a Python programmer and you want to learn C, the best way to get started is by writing C extensions for Python. Find a C library that looks interesting and wire it up to CPython.

A baby step towards doing this is to use an FFI, like Python ctypes or Ruby/DL. You'll be working with raw memory and C function calls, but you'll be writing Python. Try to port your FFI-driven extension to native C.

I don't recommend just grabbing K&R and plowing through it. It's a great book but you're not going to retain anything by reading and then trying to write out the example programs. C didn't click for me until I had real projects to work on.

My recommended book is C Interfaces and Implementations (CII). What you're going to miss in C, right away, is the lack of a "list" or "array" type like you get in Python. CII will give you the list and the dict back, and, more importantly, show you how to structure your C code professionally and idiomatically.

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/FieldLine · 4 pointsr/cpp_questions

Go nuts.

It isn't particularly enlightening; reading the STL itself never is. It is highly optimized, favoring brevity and efficiency over readability.

You'd be better off reading something like this -- I haven't read that particular book, but the author is well known in the C++ community.

u/brotherwayne · 4 pointsr/node

I was impressed with the author of Effective Javascript (link) when I heard him on the js jabber podcast.

u/GrowthMindset88 · 4 pointsr/learnprogramming

http://www.theodinproject.com/ was a great resource for learning web development. I really liked this book by David Herman for more advanced JS techniques: http://www.amazon.com/Effective-JavaScript-Specific-Software-Development/dp/0321812182. Also if your looking into Algorithms, this is probably THE book your looking for http://www.amazon.com/Introduction-Algorithms-Edition-Thomas-Cormen/dp/0262033844

u/Slackwise · 4 pointsr/ruby

I've read both the "Pickaxe" book and "The Ruby Programming Language" (co-authored by Matz and _why), and I have to say TRPL is much better.

It's a no-BS book about every single Ruby detail. Covers all the quirks and features I didn't even know existed. I definitely owe my knowledge of Ruby directly to it, but my introduction to the Pickaxe (only (free) book at the time). Pickaxe may be good to start with, but you can learn the same from TRPL and TRPL provides a much better reference later on.

u/kqr · 4 pointsr/learnprogramming

I really like Making Software: What Really Works, and Why We Believe It. It can be a little heavy at times but it's worth the read. If you want a light introduction to it, there's an extremely good talk that sort of introduces it as a side effect, What We Actually Know About Software Development, and Why We Believe It's True. Even if you don't plan to read the book, I recommend watching the talk. It literally changed the way I live, and I now live in less of a hand-wavey world and more of a firm, fact-based world.

u/ItWasAValuedRug · 4 pointsr/androiddev

I've never read the book you mentioned, but for me getting started with Android was a combination of The Commonsware Series, Reto Meier's book, and Lynda's Java Beginners series.

However, I did have a little more than a basic understanding of Java.

u/t-rek · 4 pointsr/learnprogramming

If you are proficient with another programming language (or programming in general) i really recommend Andrew Troelsen's Pro C# 2010 and the .NET 4 Platform.
It's really big but I think it is worth every penny.

u/king_crais · 4 pointsr/dotnet

Two books that I thought were good:

Pro ASP.NET MVC

Professional ASP.NET

u/swhite1987 · 4 pointsr/dotnet

I just picked up Pro ASP.NET MVC 5 by Adam Freeman. I'm a chapter or two in, so far so good. It's the currently the best selling ASP.NET book on Amazon.

http://www.amazon.com/Pro-ASP-NET-Experts-Voice-ASP-Net/dp/1430265299

u/marpstar · 4 pointsr/cscareerquestions

I've never done any embedded software development, but as a web developer looking at you from the other side, this is what I see...

At the domain level, you'll be working with different technologies than you're used to. Embedded software developers do a lot more low-level interactions with inputs from sensors, so you'll see less of that. Web developers are generally dealing more with human interaction and data persistence and retrieval.

Another big thing to think about would be your OOP experience. Are you familiar with SOLID? Have you done any real-world development using OOP? Most of the web frameworks available today (from a server-side standpoint, at least...particularly ASP.NET) are rooted in OOP.

If you've got 10 years of experience developing, learning C# will be easy. I wouldn't focus as much on the language itself as I would learning the .NET standard libraries. You'll pick up the patterns as you go. I really liked the "Pro ASP.NET MVC" books, now available for MVC 5.

If you're looking specifically for books on C# and .NET development, I don't think there's any book better than CLR via C#. Don't let the title scare you away, it's a great book for learning the lower-level bits of the .NET platform, which are relevant everywhere from ASP.NET to WinForms.

If you aren't aware, there are huge changes coming to the .NET framework and ASP.NET, so you could choose to focus on ASP.NET 5 and get ahead of the game a bit, at the expense of availability of reference material.

u/wouldeye · 4 pointsr/datascience

field's "introduction to statistics using R" is the best book for my money.

EDIT: sorry I got the title wrong:

https://www.amazon.com/Discovering-Statistics-Using-Andy-Field/dp/1446200469

u/PatsysStone · 4 pointsr/statistics

Andy Field also has a book for learning statistics using R: https://www.amazon.com/Discovering-Statistics-Using-Andy-Field/dp/1446200469

I also recommend his book, it is quite a fun read.

u/Jutanium · 4 pointsr/dailyprogrammer

Head First C# is a great book. That, and C# in a Nutshell taught me everything I needed to know.

u/thomaslee · 3 pointsr/learnprogramming

Unfortunately there's no substitute for practice, but one way to help you along your way might be to approach this learning from a testing perspective:

Write a few high-level integration or "system" tests that drives your program at a very high level -- ideally such that it doesn't need to deal with your program's internals at all (e.g. if your program should process some files and prints some output, your test might generate your files, call your program to process those files, then check the output is what you expected).

Then write your program against these tests. If you mess up your internal design, you have your high-level integration tests to prove your program's correctness when it comes time to refactor.

Of course, while you're figuring out your internal design you can be using unit tests to drive the design of individual classes too -- but don't be afraid to throw those unit tests away if your internal design happens to need to change.

Lots more detail about this sort of approach in https://www.amazon.com/Software-Development-Principles-Patterns-Practices/dp/0135974445 -- though I must admit, outside of unit testing everybody seems to have different terminology for testing at different layers (e.g. what that book calls "system tests" I know other folks call "integration tests").

u/purephase · 3 pointsr/rails

I don't think you need it explained from a Rails point of view. Ruby is an OO language, and Rails simply exploits that.

You need to learn proper design patterns in Ruby (which apply to most OO languages). Sandi Metz's Practical Object-Oriented Design in Ruby is pretty much the gold standard for Ruby and very readable.

It's based heavily off of Martin's Agile Software Development, Principles, Patterns, and Practices.

After that, you can look into SOLID but, in Ruby-land, I think the single responsibility principal coupled with the rules laid out in Metz's book (summarized here) is a good place to start.

Also, it's worth noting that if you have good test coverage it makes re-factoring much, much easier.

Good luck!

u/Midas7g · 3 pointsr/PHP

Object Oriented Programming is not for organization, or even for making parts reusable, although those are nice side-effects. OOP is for one thing: making your code easy to change. If you look at your code and discover nested if-elseif statements, or switch upon switch, you're definitely writing spaghetti code that is brittle and difficult to change.

If you use OOP for making your code easy to understand, you'll end up forcing concepts into your code that maybe don't really apply to the actual problem. For example, read chapter 6 from Agile Software Development, Principles, Patterns, and Practices. Everyone who starts solving the bowling problem will introduce the concept of "frames" but actually sticking with that object structure will needlessly complicate the design.

I develop by first writing a test, making it go green and then refactoring out the duplication. Then later when I need to make a change, I only have to understand a small bit of the code and I can make a change in a single place, confident that the places this functionality is shared will also behave in this new way.

My app is deployed weekly with new and occasionally radical features, is used by hundreds of thousands of people a day and hasn't had a single bug regression since we started programming in this fashion.

tl;dr: both of you are using OOP wrong.

u/MegaGreenLightning · 3 pointsr/javahelp

I've read both Effective Java and Clean Code and highly recommend them as well.

There's also Agile Software Development (by Robert C. Martin):
http://www.amazon.com/Software-Development-Principles-Patterns-Practices/dp/0135974445/ref=sr_1_1?ie=UTF8&qid=1451828712&sr=8-1&keywords=agile+software+development

This book contains among other things a description of the SOLID principles of software design. For example the Single Responsibility Principle tells you that each class should have only one responsibility. This reduces coupling and leads to small and more easily understandable classes. The book also contains some nice case studies showing how to apply these techniques.

While Clean Code deals with writing code and how to design methods and classes, Agile Software Development tackles the topic at a higher level and discusses how to develop and design software consisting of different classes and packages etc. It requires a basic knowledge of programming and OO, though.

Robert C. Martin has also created a series of purchasable training videos at cleancoders.com. These videos cover the topics of both books starting with the rules for clean code and then going into the SOLID principles and other advanced topics.

u/fish1232 · 3 pointsr/learnprogramming

Kilo, A Text Editor

Build your own Lisp introduction to C

Architecture of Open Source Applications Not sure which are in C

Lion's Commentary on Unix pre-K&R C

Compiler Design in C some low-level stuff

C Interfaces and Implementations (amazon link)

I haven't read any of these, but they're highly recommended.

u/Newt_Hoenikker · 3 pointsr/C_Programming

I have a several friends who find Test-driven Development to be really helpful for shaping their ideas into code. In general you'll need to break down the problem into smaller pieces, and TDD can help not only in realizing what those pieces need to be, but it also provides a method of ensuring that your code has accomplished what you want.

One of my favorite lessons from this sub is that complexity should stem from the coupling of simple parts. This isn't always straightforward. Many times it's easy to create a monolithic myProject.c, a single struct, or only a handful of functions to get the result you want. This isn't, strictly speaking, wrong but it is generally seen as bad practice. This is because when you have to maintain long term projects you want to have changes to one portion affect the others as little as possible; you should never have to rewrite the whole program in order to accommodate a change to a single part.

There aren't exactly hard and fast rules to determine the best process for modular design, but practicing on smaller projects is a good start. If you're looking for more specific "best practices" I've found C Interfaces and Implementations by David Hanson to be a really nice guide for some particularly common problems.

As for your specific project I think it would help you to consider the mechanics of TicTacToe as a game, and how you can change them while still keeping it familiar. For instance, my first thoughts are:

  • grid size: 3x3 is standard, but a larger grid could change how the game plays out without changing win conditions.

  • player number: 1v1 is standard, but having 3+ player free-for-all matches or teams could make it completely different.

    Now what I'm getting at here is that for the purposes of learning best practice it could help to design the program to allow for different rules, changing individual parts without it requiring a complete overhaul. If you can build it to change these things without recompilation so much the better. In general I look at this method as an analogous measure of scalability; can the program handle an increased load, how much of one, and how readily will it handle it. In allowing for modular rule changes you'll build a modular project.

    As a final note, bear in mind that there is a limit to modularity. Eventually trying to make a program handle every eventuality can be paralyzing. Learning where the limit is and what you feel you can handle is almost purely a matter of experience, but I think the most important thing is to never let the scale of your project deter you from completing it. You control how the program is designed so ultimately it's your decision, and if that means just sitting down and writing out something that works so be it. The perfect is the enemy of the good.

    I hope that helps.
u/cpp_dev · 3 pointsr/cpp

A handy book might be The C++ Standard Library: A Tutorial and Reference (2nd Edition).
As for something more visual experience I would recommend to watch Going Native 2012 and Going Native 2013 and maybe C9 Lectures: Stephan T. Lavavej - Core C++ then C9 Lectures: Stephan T Lavavej - Advanced STL. After you get a good understanding of new features will be good to read Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14, to understand how and when to use them even better.

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/treeturtle · 3 pointsr/learnprogramming

You can definitely learn, but don't think it'll be quick and painless. If you're a book guy This book will definitely get you going. However, I'll say it, starting programming in obj-c is a bitch. Syntactically it can be extremely overwhelming ( I tried to learn obj-c first ). If it becomes too much, take a step back and try good old C, or a much prettier language like Java, Python, or Lua which will help you understand all the concepts of programming before jumping into app development which can be extremely complex.

After being scared off by obj-c I officially started down my programming path by going through This book which was an absolute pleasure to read and a great "hold your hand" guide to basic programming. The great thing about this is that you'll be learning C concepts which all carry over to obj-C and you'll be getting very familiar with Xcode and the debugger which, again, carry right over into obj-C and app development.

u/jetsonian · 3 pointsr/learnprogramming

One thing to keep in mind is that iOS (and Mac OS) apps are written in Objective-C. Learning ANSI C is fine, but you'll learn most of it while learning C++ anyways.

If you have programmed before, my suggestion is to grab this book. It's a great resource and gets you started with objects right away, which is a good thing.

u/Doctuh · 3 pointsr/javascript

Crockford, then Effective Javascript, then the Resig above, then you branch out into your interests.

u/BestOpinionEver · 3 pointsr/learnprogramming

Objective-C is a fine first language, it won't be as easy as others would but unless your going to give up easy don't worry. The place I started was with this book, it really does a great job and if you go through the whole thing it can help you a lot! Use google, reddit, and stack overflow for any questions you have in addition. Then once you read the whole thing and feel okay about it here is a link to some free podcasts to help you get in the mind of making apps and for some additional support. I would definitely recommend reading all the book first though because those lectures move pretty fast, and that course is set up to be taken after a few of the intro to programming classes are out of the way. Also take advantage of this /r/iOSProgramming

u/defeatedbycables · 3 pointsr/IAmA
  1. The bootcamps that get the media publicity focus on intro to programming to "full stack" developer path, which, depending on your CS curriculum, should be what you get anyways - with added diversions into heavier CS stuff. Most college programs I know of do stuff like Operating Systems, Algorithm Analysis, Systems Programming (C/Bash/C++), Programming Languages (normally several small assignments done in several languages - i.e.: 'Implement quicksort in Ruby, C and Java') and Theory of Computation (my personal favorite) in addition to your 'Intro to Programming/Software Development' courses which is normally 2 semesters of basically learning a language (and the abstract concepts that apply to all languages) and then a Data Structures course.

  2. Anyone in the industry that has knowledge of hiring processes will tell you that a GitHub with many side projects and neat things you've done for either side money or personal growth is more important than a 4.0 GPA.

    I did Java as my language in my undergrad (for the intro courses) and for higher level courses I did a mix of Objective-C, C, Ruby, Haskell, Clojure - whatever really seemed interesting or suited to solving the problem.

    The only way you come to better understand a language and it's nuances, in my opinion, is to use it and use it a lot. Finding out the power of a language (and all common languages do have power -albeit different from each other) is awesome. The more you use it, you'll find what you hate.

    I also read a bunch of side material - Extreme Programming Explained, Objective-C Programming: The Big Nerd Ranch, and the ever popular Learn You a Haskell For Great Good! are some of the things I played with.

    If your curriculum doesn't require but offers a Capstone course, I would highly recommend it. Making a full product from start to finish is an amazing experience and it looks great on a resume.
u/thecoffman · 3 pointsr/ruby

If you're looking for a straight reference book on Ruby and you know how to program, I find that "The Ruby Programming Language" is better than the pickaxe, but it all comes down to personal preference. Both are excellent books.
http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177/ref=sr_1_1?ie=UTF8&qid=1289253722&sr=8-1

u/erikd · 3 pointsr/programming

The book that he takes about that was about to be published is here:

http://www.amazon.com/Making-Software-Really-Works-Believe/dp/0596808321

u/xgamerx · 3 pointsr/programming

Yeah and let's be honest; how many books are irrelevant as quickly as they are published (especially for fast-moving topics like Android and iOS). Often the book is dated before it even hits the shelves for these types of topics. To be clear, I'm not saying there isn't any value in books (I often recommend Professional Android 4). Just that often other resources are often better suited for rapidly changing topics.

u/sarcasticbaldguy · 3 pointsr/dotnet

Pro Asp.Net MVC is a decent book that will walk you through building a functioning site from scratch.

u/CaptainBlood · 3 pointsr/dotnet

The default recommendation seems to be Adam Freeman's Pro ASP.NET MVC books from APress. It's what I chose and I think it does a great job.

http://www.amazon.com/Pro-ASP-NET-Experts-Voice-ASP-Net/dp/1430265299

u/psychfi · 3 pointsr/AcademicPsychology

Lots of great suggestions here. My grad program used SPSS but it annoyed me that someone had to pay for it, so I learned R. Like others mention, if you learn R it can be easier to go back to SPSS. Also, others who use SPSS might think you have some kind of superpower.

Like u/bobbyfiend says, the best is to do use it on some projects. This forces you to learn something that is important and you have interest in solving. The internet is amazing, and most answers in some form or another can be found on Stack Overflow (make sure to ask the questions in the proper format and search first), /r/rstats (a bit more friendly than stack overflow), or on some of the email lists.

In general, I would say there are a couple of resources that most people could benefit from as they start to learn:

-Andy Field's Discovering Statistics with R - It does have some irreverent humor, but is a good read

-Hadley Wickham's R for Data Science - this resource is free online but can also be bought through Amazon. Hadley is a R celebrity responsible for creating the 'tidyverse' series of packages - packages which make R more beginner friendly imo.

You will definitely want to look at your subspecialty and see if there are any people working in R there. They may have some other resources. Again, you can read books and watch courses all you want, but it is critical to practice (and practice using something you are interested in can help exceptionally). Ultimately, I used my dissertation as an excuse to dive into R - there was pain, and I probably could have done it quicker if I stayed in SPSS - but I learned a lot and now use R and Rmarkdown - and really do not think I plan on going back. Another user mentions looking at others' code, and this has also helped me to make my code more efficient and reproducible - a big strength of R (love that you can use Git).

u/ResidentGinger · 3 pointsr/IOPsychology

Second Tabachnik & Fiddle along with Hunter & Schmidt

Rogelberg's IO Handbook

Brannick & Levine's JA text

HLM - Raudennbush & Bryk

Ployhart et al's Staffing Organizations

I have lots of other O-oriented things, but those will depend on your specific area.

Edit: This!

u/Bjarkwelle69 · 3 pointsr/badeconomics

> Maybe pick up a book and try to learn a little bit of R this summer?

Coursera has online courses if you want learn R and how to do statistics using R.

If you prefer a book, try "Discovering Statistics Using R" by Andy Field. I'm using it to self-study right now and I highly recommend it. It really explains statistical concepts well and it's very easy to read. Although it does sacrifice a lot of mathematics, you could compensate for it when you take up your statistics subject.

I do have to say that I've already taken up Econ Statistics and Econometrics (I had a horrible time however). Also, I've taken up the R course in Coursera so I'm not sure if my experience with the book is the same as yours. Read a couple of chapters and see if it is to your liking.

u/MrDominus7 · 3 pointsr/GradSchool

Discovering Statistics Using R by Andy Field is probably your best bet. It's pretty comprehensive in terms of what it covers and is easy (and enjoyable) to follow along with and understand.

u/mr0860 · 3 pointsr/statistics

I found Andy Field's Discovering Statistics Using R to be quite helpful.

u/_rere · 3 pointsr/cscareerquestions

Hi there, fellow EE.

We should make a club :)

I believe you can do a crash course into software development and catch up later when it comes to be a better software developer, since you've already been in the market for 4 years I'm sure you know exactly what I'm talking about (job has nothing to do with education, and you can learn as you go), and I know its the same in CS, a lot of companies just want you to do specific thing, and they don't really care about your theoretical knowledge or your full knowledge with software development life cycle.


Since you are an EE graduate I think you can relatively easily land a c++ software development job, but the problem with c++ is that there is a lot of theoretical knowledge is expected from you.

Still I believe if you set aside 3 months of your lifetime and study the following:

Programming: Principles and Practice Using C++

Code Complete

introduction to algorithms

Optional:

Software Engineering

Java Heads first

C# in a nutshell

Note, half of these books will bore you to death, but you have to power through.
Also there will come times where you don't understand what you are reading, I find it best is just to keep going, eventually things will make sense.

I personally find books is the fastest way to learn, and give you the deepest knowledge and always access to awesome tips and tricks that you can't learn at class or from a video.

If you pick those books, you can read from them in parallel, make a habit of finishing a chapter per 24/48 hour and practice 1-2 hours of programming (of what you've learned) I'm sure by the end of the 3 months you will be better than a lot of CS graduates

u/sixothree · 3 pointsr/csharp

You need to pick a project that is bigger than your understanding of the language. It really is that easy.

Since you know a bit of Java, get this book: C# 5.0 in a Nutshell. It's an excellent reference.

I find myself using the following sites:

http://www.dotnetperls.com/

For basic learning.

http://stackoverflow.com/

For finding specific answers.

http://www.codeplex.com/

For finding useful open source projects and libraries.

http://www.codeproject.com/

For finding useful open source projects and libraries, as well as tutorials and guides.

u/Aeyoun · 3 pointsr/Astroneer

System Era Softworks are looking for C++ developers, so your information seems accurate.

I’d recommend you start out [playing around(https://www.amazon.com/Python-Cookbook/dp/1449340377) with Python before committing to C++. It’s much easier to achieve to some tangible goals. Maybe start out scripting some simple tasks. E.g. create ten files that each contain their own creation date and file path. Then progress through making some short text-based multi-choice adventure game (Gender-Neutral-Internet-Person and the Quest for the Reddit Upvotes). Start out simple and see if you enjoy the challenge before committing to learning C++ through game development.

P.S.: System Era lists familiarity with Python as a desired skill. It’s still relevant for automating tasks and getting stuff done even when you learn more complex languages.

P.P.S.: Python 3 is the right choice. 2.7 is an outdated dialect. You’ll know what this means soon enough.

u/ProfJustin · 3 pointsr/Accounting

> https://www.amazon.com/Python-Cookbook-Third-David-Beazley/dp/1449340377
> Also start watching every video David Beazley has on YouTube. You won’t regret it.

Got it!

u/dtizzlenizzle · 3 pointsr/Accounting

https://www.amazon.com/Python-Cookbook-Third-David-Beazley/dp/1449340377

Also start watching every video David Beazley has on YouTube. You won’t regret it.

u/objectified · 3 pointsr/Python

If you're just starting out, you will want to read Learn Python the Hard Way

If you want to learn to do thing the "pythonic" way, I've found that Idiomatic Python is a very good book.

If you already know Python and you want to learn about a wide area of subjects that can be dealt with in Python, I recommend the Python Cookbook. While some cookbooks are somewhat shallow, this book is very different. It provides extensive and very practical information even on complex topics such as multithreading (locking mechanisms, event handling, and so on). It's really worth it.

Also, don't forget to simply read and embrace the pep8 guidelines. They really help you produce good, maintainable Python code.

u/Mr_Toyota · 3 pointsr/cscareerquestions
u/tanyaxshort · 3 pointsr/gamedev

For game DESIGN, I personally like A Book of Lenses and Rules of Play. I didn't get much out of Theory of Fun, and the internet seems to like Level Up! but I haven't read it.

And none of those teach you really about game DEVELOPMENT -- the process, gameplay architecture philosophies, the pipelines, the team structures, the milestones, the industry jargon. The closest I've seen to that is having a games producer de-code chapters of Rapid Development for how it relates to games, back before I joined the industry and had my trial by fire. :)

Do you know what kind/platform/genre of game you're making, and what size the team is?

u/samort7 · 3 pointsr/learnprogramming

The only book I could really recommend for learning TDD is The Art of Unit Testing: with examples in C#, 2nd Edition

u/tangerinelion · 3 pointsr/learnpython

Personally, I've found this book to be pretty good. It assumes knowledge of Python but does not assume knowledge of OOP.

u/JessieArr · 3 pointsr/programming
u/LyndonArmitage · 3 pointsr/programming

Personally I wouldn't mind if == never did implicit casting and acted like === (in fact I wish it did), but the rules don't seem that bad to me.

The example I gave was very contrived, and solution was naive, the best way to compare two arrays to each other would be to loop through them, like this. What I was doing was showing you how you'd take advantage of the implicit casting.

I think it was in John Resigs book where I read the best advice I have seen for JavaScript and it went something like "Treat everything as if it was an object and use === unless you need to use ==".

Also never use the wrapper objects if you can help it. Let the interpreter use them in auto-boxing and leave them alone. Because you are 100% right, things can get a bit weird then.

u/indu777 · 2 pointsr/learnprogramming

If you are new to programming it is better to take another approach. You should choose your specialization first (game development, web, data mining or something else). Second try to solve problems in that area and use C# for this. For example if your choice is game development then search for books “how to make games with C#”.
If you cannot decide where to go with c# I recommend book: http://www.nakov.com/blog/2014/01/13/free-programming-book-csharp-fundamentals-nakov-presentations-slides-videos-lessons-exercises-tutorial/
It has lots of exercises and will teach you not only C# syntax but also basic programming techniques like OOP principles, algorithms and data structures.
If you already know any programming language then any C# reference book will be sufficient. For example http://www.amazon.com/C-5-0-Nutshell-Definitive-Reference/dp/1449320104/ref=asap_bc?ie=UTF8

u/webitube · 2 pointsr/Unity3D
u/ixAp0c · 2 pointsr/learnprogramming

C# 5.0 in a Nutshell might be what you are looking for. It's more of a reference than a tutorial, and if you don't know Java I'm not sure how hard picking up C# syntax will be (disclaimer: I don't program in C# and haven't coded a single line of Java since it was required in a High School class).

u/sirdoctoresquire · 2 pointsr/dotnet

So, this post is close to a week old. I hope I'm not too late.

Microsoft actually has some pretty good training courses that you can go through for free.

C# Jumpstart

ASP.NET Jumpstart

I used the jumpstarts as a refresher a while ago after I got stuck developing on Oracle for a while and they are both good overviews.

That said, when you are looking at doing MVC .NET development you are really talking about three things. Learning C#, learning about the .NET framework, and learning how to develop in Microsoft's implementation of the MVC framework. I would learn in that order.

Since you have experience with Java, C# should be fairly familiar to you. I'd still recommend skimming over the basic differences. Once you've got that in hand, it is good to learn about the basic offerings of the .NET frame work. I've found that C# 5 in a Nutshell does a great job at going over both C# and the .NET frame work. It is dry, but worth going over. Once you've been through the first few chapters, you can pick and choose where you want to dive in next. IMO, LINQ is great.

Then, once you've got a good grasp for C# and the underlying framework, it is pretty easy to tack the MVC model on to it. The biggest problem I've seen is devs trying to learn every thing all at once. Depending on your experience level, you may be able to dig right in. Best of luck.

u/Mr_Bennigans · 2 pointsr/gamedev

> I think if I learn how to program with an aim to work as a software developer and make games on the side, is this viable after just turning 20?


There's nothing wrong with the age of 20. I started school at 20, graduated in four years, and found work as a software engineer right out school.


What you have to figure out is how to make the best of your time left in school: should you take a class or two on programming and graduate on time, or (more dramatically) change your field of study to computer science and spend a few more years in school? That's something only you can decide. If you want to finish your architecture program and graduate in a reasonable amount of time, I can assure you that your math and physics background will be enough to get you work as a software engineer, but only if you can actually program.


Part of working as a software engineer means being able to program in multiple languages. That's because it's not really about the language, it's about the logic. All languages follow certain patterns and while syntax or wording may change, they all share ways to implement the same logic.


It also means knowing what data structures to use for what scenarios. The phrase "There's no such thing as a free lunch" comes to mind. All data structures have advantages and weaknesses and no data structure is perfect for every occasion. Know the differences, know the performance impact, and be able to speak to them. This won't just help you write better code, it will help you land a job. Interviewers love to ask questions about data structures.


As a corollary to data structures, you also need to know your algorithms. You need to know the performance impact of different ways to search and sort, traverse graphs, and find the shortest path (particularly relevant for game programming).


You said you're learning Python and that's great. Python is a great way to learn how to program. It's dynamic, it's friendly, and it has a rich library. Learn Python inside and out, then pick another language and figure out how to do the same things. C++, Java, and C# are all pretty popular in the industry, pick one of those. Once you know how to program in a few languages, you focus less on minute implementation details specific to one language and more on high level abstraction shared across multiple languages. By that point, you'll no longer be speaking in code, you'll be speaking in plain English, and that's the goal.


I don't know many good free online resources for learning languages, I learned mostly out of textbooks and lecture slides (along with lots of practice). There are some links in the sidebar to some tutorials that are worth checking out. Beyond that, I can recommend some books you may want to read.


  • Algorithms in a Nutshell - one of the best quick references on algorithms you can read
  • C# 5.0 in a Nutshell - excellent language reference, aimed more at advanced programmers, though it's comprehensive in scope, covering everything from language syntax and structure of a program to more complex tasks like threading, multiprocessing, and networking
  • Learning XNA 4.0 - a great game programming book, teaches 2D and 3D game development using Microsoft's C# and XNA framework
  • Java in a Nutshell - another great language reference
  • Starting Out with Java - introductory programming text, has end-of-chapter problems for reinforcement, a little pricey so see if you can find a used older edition
  • Starting Out with C++ - another good introductory programming text from Tony Gaddis
  • Python in a Nutshell - I can't speak to this one as I haven't read it, but I have been extremely happy with O'Reilly's "... in a Nutshell" series so I suspect it's as good as the others
  • Learn Python the Hard Way - free online book about learning Python, begins with simple examples then teaches you how to break it so you know both sides of the story, wasn't as comprehensive as I'd hoped but it taught me the basics of Python
  • Programming Interviews Exposed - sort an all-in-one book covering lots of different topics and giving an insight into what to expect for that first interview

    EDIT: I added Programming Interviews Exposed because it's a good reference for data structures, algorithms, and interview questions
u/cheesekun · 2 pointsr/dotnet

I agree. 50 dollars can get you a 2000 page reference book. Hell 30 dollars can get you a nutshell book http://www.amazon.com/5-0-Nutshell-The-Definitive-Reference/dp/1449320104/ref=pd_sim_b_1

But with StackOverflow & great MSDN documentation is there a real need for books that gather dust?

u/tidier · 2 pointsr/Python
u/BobBeaney · 2 pointsr/learnpython

Oh, definitely learn the correct Python 3 idioms. You might want to augment your learning resources with the latest edition of The Python Cookbook which has been updated to Python 3. It's not free but well worth the price!

u/vsonicmu · 2 pointsr/programming

If anyone's interested, Dave Beazley's Python Cookbook (Amazon Link ) has a recipe on implementing multiple dispatch via decorators. This is really just an example to illustrate complex decorator use, so I wouldn't recommend it. But it's possible (and clever)

u/phasetwenty · 2 pointsr/programming

I've read about this practice in Rapid Development, used as a motivator. I have no firsthand experience with the practice as it's described in RD but it I expect that it's not as awful as all that.

As described in RD, the manager offers the project to the engineers from the standpoint of a challenge: "here's this thing we want to build, it has [x] requirements, we need it done, who is in?" The manager then must leave it up to the engineers as to whether or not they wish to participate. It stands to reason that this procedure can't be used in all contexts, for example, successful implementation usually results in a loss of management control and progress visibility. The takeaway is offering people a chance to be a part of something interesting is a powerful motivator.

Note: I just reviewed the chapter in RD and it uses The Soul of a New Machine as a reference.

u/wicked · 2 pointsr/programming

I was in a very similar situation, and read many of the books poeir wrote up. However, the one I found the most helpful was Steve McConnell's Rapid Development.

At least make sure you borrow it from your library and read the part about classic mistakes.

u/eagle2120 · 2 pointsr/ITCareerQuestions

There are a ton of different things you can do on the defensive side. The path here is a bit less defined because you can specialize in each of these areas with out ever really touching the other ones. But I think these are the most important skills as a defender, so I’ll break it up into three smaller chunks. For the most part, defender/Blue-team concepts draw from these skills, I’ve setup the courses in order, as some of these skills may feed into other areas.


IR:

u/guifroes · 2 pointsr/learnprogramming

Interesting!

Looks to me that you can "feel" what good code looks like but you're not able to rationalise it enough for you to write it on your own.

Couple of suggestions:

When you see elegant code, ask yourself: why is it elegant? Is it because is simple? Easy to understand? Try to recognise the desired attributes so you can try to reproduce on your code.

Try to write really short classes/methods that have only one responsibility. For more about this, search for Single Responsibility Principle.

How familiar are you with unit testing and TDD? It should help you a lot to write better designed code.

Some other resources:

u/jeremywho · 2 pointsr/csharp

I'd recommend the basics from searching around, maybe checking out a video on youtube. Figure out how to setup a project using MSTest and one using NUnit (maybe XUnit as well). Do a basic TDD Kata (fizz buzz, etc).

Learn about using fakes/mocks/stubs (NSubstitute is good).

C# Specific book, new version out in November:
The Art of Unit Testing: With Examples in .NET

Get the pre-release here if you want:
The Art of Unit Testing: With Examples in .NET

u/cmaart · 2 pointsr/csharp

Can absolutely recommend the The Art of Unit Testing!

u/pdexter · 2 pointsr/learnprogramming

I would look into IPython. Not that it's a book, but that's what most (all - hopefully) scientists use. And that's what you sound like you'll be using Python for.

As far as a book that focuses on Objected Oriented theory and applications? Not a clue. Maybe this? http://www.amazon.com/Python-3-Object-Oriented-Programming/dp/1849511268

I would suggest looking for an open source project and studying its design.

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/takethecannoli4 · 2 pointsr/learnpython
u/LinuxLeafFan · 2 pointsr/linux

O'Reilly texts generally have a good reputation. If you want to learn bash scripting it's probably a good place to get started. I personally have never read a BASH scripting book so I cannot comment.

Once you have gained some basic scripting skills and knowledge of some of the LINUX/UNIX power tools (sed, awk, grep, flow control, etc), I would suggest taking a look at the following wiki pages:

  • http://mywiki.wooledge.org/BashGuide

  • http://mywiki.wooledge.org/BashPitfalls

    The wiki pages I listed are very good but they lack information regarding common commands (sed, awk, grep, cat, echo, printf, join, paste, etc)

    For python depending on how far ahead you are, I would suggest Automate the Boring Stuff with Python and/or Python Crash Course. Skimming through them, Automate the Boring Stuff with Python is a quick introduction to some things you can do. Python Crash Course is a more complete/learn the language type book.

    If you feel you are becoming more advanced in Python, I would suggest picking up a copy of:

  • Python 3 Object Oriented Programming

    The above book was recommended to me by a developer and I feel I learned a lot from it when I was trying to take my python skills to the next level (especially coming from a background in functional programming).
u/voidpirate · 2 pointsr/javascript

I would check out Secrets of the JavaScript Ninja

It's a great book if you are coming from a different programming language to JavaScript. The syntax of JavaScript may feel familiar but don't be fooled. Javascript has many different quirks, that you should wrap your head around in order to write "good" JavaScript.

u/pier25 · 2 pointsr/godot

If you want a great beginner book on C++ I recommend "C++ Without Fear"

u/banuday17 · 2 pointsr/java

Sure, glad I could help. It sounds like you're having some difficulties with the fundamentals of object-oriented programming. The Java tutorials are good, but they are focused on the Java specifics and don't really go into the bigger picture.

For that, I would highly recommend Agile Software Development, Principles, Patterns, and Practices by Bob C. Martin.

u/time-gear · 2 pointsr/6thForm

Projects on github is a good way to show them. And then you can talk about how to know how to use git (not worth mentioning IMO but still)

Books: https://www.amazon.co.uk/Software-Development-Principles-Patterns-Practices/dp/0135974445 is a book that outlined the SOLID principles for coding which are quite popular today. In the recommended section are some others by him as well

u/MrKurtHaeusler · 2 pointsr/software_design

Possibly one or both of Bob Martin's books.
Agile Software Development, Principles, Patterns, and Practices (comes as a Java or C# version, but many of the ideas will probably be useful if you are using an OO language) or
Clean Code

u/newocean · 2 pointsr/cpp_questions

It will get tougher just stick with it. I just pulled my copy out to figure about where you were. Another book I recommend owning is this one:

http://www.amazon.com/The-Standard-Library-Tutorial-Reference/dp/0321623215/ref=dp_ob_title_bk

Actually if you PM me, I'll give you my email or skype so you can ask questions.

u/zzyzzyxx · 2 pointsr/learnprogramming

> I'm really only showing them the deep end

Fair enough.

> const correctness has less functional impact on what a program does than functions/arrays/pointers/OOP/many-other-concepts

True, it doesn't affect the behavior of the code. But code that works is not inherently good code. It's hard to write good code in C++ and I see a lot of bad C++ come through r/learnprogramming so I am of the opinion that best practices should be taught early. I can understand your argument with opportunity cost though.

Perhaps it's sufficient to say at the outset "if you don't expect something to change, mark it const; I'll explain further in the future". Then in your lectures you can mention it in passing, e.g. "This function should not modify this parameter so I am making it const". It's easier to remove a too-restrictive const than it is to insert a necessary one later. You can expose them to consistently good const usage before you explain in detail.

> I may ask for your feedback on that lecture specifically when I do it, if you're willing to participate.

Absolutely. Just let me know when.

> Movie editing is the problem

Oh, sorry; I misunderstood. Lightworks seems to be the best free editor comparable to Premiere.

> Any suggestions for good resources

In my opinion, C++ is always best learned from a book. The two that I would recommend right now are C++ Primer 5th ed and The C++ Standard Library 2nd ed. Though you will be able to skip around to the C++11 parts, both would also be good for your students.

u/zzing · 2 pointsr/cpp

One possibility (available on the 9th): http://www.amazon.com/The-Standard-Library-Tutorial-Reference/dp/0321623215/ref=dp_ob_title_bk

The only potential problem is that the author had an interview recently that put serious question on the quality of the work done. So I would wait and see. The present book is really good though.

u/exoticmatter · 2 pointsr/learnprogramming

If you are asking about the C++ Standard Library, the answer is "read a book" (or several books), such as this excellent one.

u/silverforest · 2 pointsr/gamedev

Two book suggestions:

u/jamangold · 2 pointsr/learnprogramming

Programming in Objective-C by Stephen Kochan

u/dysfunctionz · 2 pointsr/jailbreak

Rather than a book, I highly recommend watching the Fall 2011 Stanford iOS development course. I had spent a whole summer going through this book and, while the book is decent, it only briefly touches iOS development.

A year later, I'd forgotten most of what I'd learned, and finally had an idea for an app. After spending about two weeks watching the Stanford lectures and doing a few of the course assignments (which are all available to download) I was ready to start in on my app, just going back in to watch a lecture here and there on big topics like Core Data and concurrency and learning the rest as I went from the documentation and Stack Overflow. And now I'm preparing to put out a beta at the end of the month. I highly recommend the course.

EDIT: The course does assume you have a decent amount of programming experience, which I did as a Computer Science student. It may be harder to get through if you haven't programmed in something like Java, C#, etc and don't have a basic understanding of code patterns.

u/beeb2010 · 2 pointsr/iOSProgramming

I would get a good reference book on objective-c like: http://www.amazon.co.uk/Programming-Objective-C-Automatic-Reference-Developers/dp/0321811909/ref=sr_1_5?s=books&ie=UTF8&qid=1367517200&sr=1-5&keywords=ios+programming

Maybe try some Cocos-2d game development (features on Ray's site)?
Also, maybe try creating some utility apps such as the standard shopping / things to do list app to get a good foundation in table views and storing data.

stackoverflow.com is a good FAQ type site with lots of questions on which you may find useful while you are developing.

icodeblog has some good info on, although it's not updated as much as it used to be - http://www.icodeblog.com/category/tutorials/

I've just come across this site (parse) which seems to have some good tutorials with downloadable code https://www.parse.com/tutorials which you might want to look at.

Also tuts+ http://mobile.tutsplus.com/category/tutorials/iphone/

maniacdev http://maniacdev.com/category/ios-developer-tutorial

may be of some use? http://docs.xamarin.com/guides/ios

edumobile http://www.edumobile.org/iphone/

ioscreator http://ioscreator.com

u/viper1092 · 2 pointsr/ObjectiveC

I've been learning ObjC on own for a bit now. I took a two-pron approach. I am reading this book which covers ObjC basics and I am watching the Fall 2012 Stanford iOS courses on iTunes U. It's really got me going thus far. It also breaks the monotony of just reading a book, it feels like you are really in the class room.

u/noman_land · 2 pointsr/javascript

Take a look at the book Effective Javascript. It's a really excellent book that deep dives into specific examples and what to look out for.

Secondly, check out some of the tutorials on nodeschool.io. They get into some really neat and important Javascript things.

Thirdly, write some backend Javascript code in nodejs so you can use the skills you already have but apply them to backend concepts. Heroku has some really nice tutorials that will get you writing server code in just a few minutes. https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction.

Fourthly, use one or more of the popular frontend frameworks to build a simple Todo app. In fact, if you have the time, build the same Todo app in a few different frameworks, so you get an idea of how they work.

Also, when interviewing, just be honest. Tell them you have a number of years of experience but that you've worked for organizations that preferred quick and dirty over perfect. You can parlay that into a positive by showing how learned to get stuff done quickly without spending too much time on small details.

u/randmaniac · 2 pointsr/programming

I found Effecive JavaScipt [1] to be the better and more up to date resource when I had to dive into javascript about 2 or 3 weeks ago.

[1] http://www.amazon.com/Effective-JavaScript-Specific-Software-Development/dp/0321812182

u/deathbysniper · 2 pointsr/javascript

My coworkers and I have been slowly going through this book for a while now and we've all learned a lot.

u/DavesNotThere · 2 pointsr/Random_Acts_Of_Amazon
u/jtbrown · 2 pointsr/ObjectiveC

The Stanford course is a great way to learn if you're into lectures.

If you prefer workshops and have the time and money to invest, you should go to the Big Nerd Ranch Beginning iOS Bootcamp. (Here's my extended writeup about it - in summary, it's a great way to learn since you get live instruction.)

Or if you like books, you can try Objective-C Programming, and follow that up with iOS Programming: The Big Nerd Ranch Guide.

Decide which learning style you prefer, then jump in. :)

u/TheMiamiWhale · 2 pointsr/iOSProgramming

Ray Wenderlich's site has great tutorials. I'd strongly encourage you to work through these books - they should give you a pretty strong foundation:

  • Programming in Objective-C - this will also give you a primer/background in C language features as well.

  • BNR's Objective-C Programming - great overview of the language

  • BNR's iOS Programming

    Ray Wenderlich also has some Swift tutorials but if you are just starting out I'd focus more on Objective-C for now as it will be very useful to know when looking at libraries that aren't ported to Swift.
u/codexjourneys · 2 pointsr/learnprogramming

Get this book from Amazon:

Objective-C Programming: The Big Nerd Ranch Guide
http://www.amazon.com/Objective-C-Programming-Ranch-Edition-Guides/dp/032194206X

It assumes zero knowledge and is the best programming book I ever read. (It's the one that got me started programming.) Then you can move on to their iOS Programming book. You might get stuck in that book. If so, go to Ray Wenderlich's tutorial site.

Have fun!

u/Pinkman5545 · 2 pointsr/learnprogramming

I'd learn objective-c first since a lot of iOS apps are still written in that. Swift is a bit easier to learn so once you get objective-c down you could move to that. There are lots of good tutorials online. Udemy's $19 course is pretty good. For books, I'd start with The Big Nerd Ranch.

u/alexcp · 2 pointsr/learnprogramming

These two are the most recommend for beginners

The Ruby Programming Language

Agile Web Development with Rails


More advanced topics:

Metaprogramming Ruby

The Rspec Book

u/jackmott · 2 pointsr/compsci

Yeah so more of the kind of work this guy is doing:
https://www.youtube.com/watch?v=uEFrE6cgVNY

and greg wilson has a book that reviews this idea:
http://www.amazon.com/Making-Software-Really-Works-Believe/dp/0596808321

u/rferranti · 2 pointsr/programming

Not an opposite view, but IMHO definitely worth quoting on this matter:

> If more than 20-25% of a component has to be revised, it's better to rewrite it from scratch. (Thomas et al, 1997)

It's Greg Wilson, author of "Making Software: What Really Works, and Why We Believe It"

u/danimoth2 · 2 pointsr/learnprogramming

Thanks for the quick and concise reply. Yup honestly I'm not that impressed with my teachers and I always come on to r/learnprogramming to really learn programming. I've really learned a ton here. As much as I would prefer to just study at home instead of going to school in my country a degree is a must if you want to land a good programming job here or abroad.

If it's not too much do you have any recommended books? I'm looking at this one.

u/rcinsf · 2 pointsr/programming

I agree somewhat but for a true noob, a good starter reference/book is a good thing. K&R is short too. Look at this for comparison.

If you don't have a base for programming it's hard sometimes to know what options are even available to you.

I'm an intermediate programmer and it's likely the best I'll ever be. I work hard as hell keeping up with technology. People keep moving my damn cheese!

My first C book was Teach Yourself C in 21 days. Some ancient version from like 1993-4. It was a good starting point. The key is to just start.

u/theorish · 2 pointsr/csharp

"Pro C# 2010 And The .NET 4.0 Platform" by Troelsen.
£27.23 on amazon.
http://www.amazon.co.uk/Pro-2010-NET-4-0-Platform/dp/1430225491

Very thorough, in-depth, aimed at experienced programmers.
Covers C# and .NET, including CLI, CLR, and an overview of .NET libraries.

u/jhartwell · 2 pointsr/learnprogramming

You need to pick up Pro C# 2010 And The .NET 4 Platform. Not only does it tell you how to use a database, it shows you the 3 options that are available (options as in methods).

u/generalT · 2 pointsr/IWantToLearn

i learned C# in 2008 by starting with 2008 version of this book.

u/messycan · 2 pointsr/programming

Pro C# 2010 and the .NET 4 Platform, Fifth Edition

e: I would also like to say that MSDN is a great place to look: MSDN.

u/ericswc · 2 pointsr/learnprogramming

The ASP.NET website has quite a bit of materials.

For books, I'm a fan of this one

u/delphi_edict · 2 pointsr/csharp

There are two good texts that I'd recommend, each have their own bright spots. Pro MVC 5 and Professional Asp.net MVC 5.

u/Insomn · 2 pointsr/dotnet

Think I solved this one on my own (well, actually started using Pro ASP MVC 5 that I bought last week), but wouldn't mind if someone feels like chiming in just to make sure my thinking's right.

The stock OOBE for MVC5, scaffolding controllers w/ EF bindings, is for when you want to get an MVP out ASAP, right? It'll work as is, but there's hella tight coupling between the MVC and EF, very opinionated, and for enterprise-level apps is generally regarded as a terrible idea.

If you want a loose coupling, and just throw everything off to Ninject to resolve you do have to implement the Repository Pattern yourself from the ground up?

u/tescoemployee · 2 pointsr/learnprogramming

There are a lot of brilliant .NET tutorials on PluralSight including it's own Track of 11 videos and more speciality sources (using .net mvc with angular and web api). It's expensive though.

When I started I found that this book really helped a lot.

https://www.amazon.co.uk/Pro-ASP-Net-MVC-Experts-Voice/dp/1430265299/ref=sr_1_1?ie=UTF8&qid=1478025780&sr=8-1&keywords=asp.net+mvc

u/MysteriousEchidna · 2 pointsr/bioinformatics

I would second The Elements of Statistical Learning is a great text but it is not an entry level stats book. Maybe try Discovering Statistics Using R?

u/BlackOdder · 2 pointsr/csharp

This is my favorite book. Easy to understand but deep http://www.amazon.com/5-0-Nutshell-The-Definitive-Reference/dp/1449320104

u/radiantyellow · 1 pointr/cpp_questions

I used this book, C++ without fear, when learning C++ at school

https://www.amazon.com/Without-Fear-Beginners-Guide-Makes/dp/0132673266

its a good book for learning C++, its a bit dated but its good for starters. After that you should get something better, like C++ prime as recommended by /u/EraZ3712

u/codestart · 1 pointr/learnprogramming

Is there a reason you don't want to do CS/CE? It will pay off in the long run if you get one of those degrees instead. I have written a blog post that will help you out here.

Also I am pretty sure you will be learning C/C++ in your beginning programming class. You can check out this book C++ Without Fear.
I am also creating an interactive way to learn C at CodeStart

u/KarmaAdjuster · 1 pointr/gamedev

A little more background on my path, I've been primarily a designer working professionally since 2002, but I'm finding that in order to avoid being promoted into obsolescence, learning to program seems like it would be a worthwhile endeavor.

I started out learning Python using code academy, which was pretty good for the basis, but when trying to take that knowledge and follow a tutorial I found for making a space invaders game with Python, it was still over my head. So I continued my training with the book Hello Python. I chose that book because it looked like the examples it had were the closest to being game related and still approached coding from a beginners perspective.

Midway through the book, I shifted over to C++ at the advice of another programmer colleague, and I'm working my way through the book C++ Without Fear (it looks like there's a new edition available now). I chose this book for similar reasons to the Python book. I'm not over whelmed with this book as it tends to be pretty basic in some parts and then glosses over concepts that are a bit trickier. So I've enlisted the aid of another programmer friend and have been meeting semi-regularly with him to go over the parts I struggled with in the book. He's been fantastic.

My UE4 progress has been pretty separate from my C++ training so far. I was already pretty familiar with previous versions of the unreal editor from having been responsible for maintaining the content section of UDN back in the days of UE2 and UE3, so I've just been watching the tutorial videos while I work out to learn about what's new and where to locate everything now. I really should play around with just building a few simple things with EU4. The blueprint system looks like a big improvement over kismet, which was already pretty awesome.

I hope that helps. Good luck to us both!

u/NuclearCoffee77 · 1 pointr/learnprogramming

Hi OP. I tried learning programming, but found most beginners books to be absolute shit and aimed at already proficient programmers. It's hard to find a book that targets absolute beginners. So far this is a very good book I've found:

C++ without fear.

It teaches C++ for absolute beginners. C++ is probably the most important programming language out there, though not necessarily the easiest. You can find a download link to the pdf here.

You will need to download and install visual studio of course. As for the internet connection problem.. yeah maybe you can ask for access to the internet by explaining to prison officials your intentions.

u/0x6f6f70736966617274 · 1 pointr/learnprogramming

The original edition of this book got me started in programming. I have a strong bias toward encouraging new, serious programmers to start with a natively compiled language and move from there. If you're looking for a leg up, I think this would be a great book for you to work though.

u/htglinj · 1 pointr/dotnet

Robert C. Martin, a.k.a. Uncle Bob, initially wrote a book for Java (2002) before the C# (2006) book was written. The only version he seems to maintain, or at least I can find links for on GitHub, is Java.

The book has helped me understand concepts, and most consider Uncle Bob one of the essential authors of computer programming. The C# book has code throughout, especially Section 4, but I cannot find a downloadable source. You'd have to input by hand, page-by-page if you wanted the complete system.

u/njw1108 · 1 pointr/agile

https://www.amazon.com/Software-Development-Principles-Patterns-Practices/dp/0135974445 could be a good start.

and Uncle Bob's blog has a lot of insightful thoughts as well https://blog.cleancoder.com/

u/CreeperShift · 1 pointr/learnprogramming

I recently asked my prof the same thing, and he recommended this:
https://www.amazon.com/Software-Development-Principles-Patterns-Practices/dp/0135974445

A little older but apparently still very good. Haven't gotten to it yet tho so I can't really tell you more.

u/dencan · 1 pointr/sweden

>[1] http://www.amazon.com/dp/0135974445/

Det där var ju en ganska tvivelaktig källa. Eller så missade jag en ganska stor bit av agil utveckling på högskolan.

u/reginod · 1 pointr/netsec

You don't need a school for this.

Low Level Programming Languages

u/benjade · 1 pointr/C_Programming

Besides what has been mentioned, these two are also good:

u/Truth_Be_Told · 1 pointr/C_Programming

First note that Career/Job/Market is quite different from Knowledge/Intellectual satisfaction. So you have to keep "earning money" separate from "gaining knowledge" but do both parallely. If you are one of the lucky few who has both aligned in a particular job, you have got it made. Mostly that is never the case and hence you have to work on your Motivation/Enthusiasm and keep hammering away at the difficult subjects. There are no shortcuts :-)

I prefer Books to the Internet for study since they are more coherent and less distracting, allowing you to focus better on a subject. Unless newer editions are reqd. buy used/older editions to save money and build a large library. So here is a selection from my library (in no particular order);

u/rtz90 · 1 pointr/embedded

So I found the book C Interfaces and Implementations, which looks pretty good. Do you have any other recommendations for design pattern books?

I have been following the Linux kernel style guide for a while and I am pretty happy with it. I have skimmed some random kernel code a few times but always felt actually diving in and seriously reading it would require a big time commitment, maybe better to start with something smaller first like Contiki...

u/balefrost · 1 pointr/AskProgramming

> How the heck am I supposed to learn STL, when and how to use it?

Books are good! They can cover the material more efficiently than video can, and it's easy to adapt if the material is being covered too quickly or too slowly. I don't have a personal recommendation, but a quick Amazon search came up with The C++ Standard Library: A Tutorial and Reference (2nd Edition) which seems to be well-regarded. Too expensive? A used copy of the 1st edition is only a few bucks.

u/septemfoliate · 1 pointr/cpp_questions

Consider Josuttis' book for coverage of the Standard Library. I was pleased with the first edition, and I would think that the second edition is just as good.

u/aaronclong · 1 pointr/cpp

I am a little offended by your comment. It is very elitist and an attitude that is contributing to the slow and painful death of this language.

>If your into templates , and you can't find anything challenging, its time to start saving up those pennies and buy The C++ Standard Library , else your going to learn crap. Most folks buy it as a reference. I don't get contracts and you won't catch me without it. No money , no honey - and no jobs

u/ruskeeblue · 1 pointr/cpp

If your into templates , and you can't find anything challenging, its time to start saving up those pennies and buy The C++ Standard Library , else your going to learn crap. Most folks buy it as a reference. I don't get contracts and you won't catch me without it. No money , no honey - and no jobs

u/Amorphic · 1 pointr/simpleios

I've seen the following recommended, I've not read them myself yet, so can't comment on how good they are or not:

Objective-C Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides)


Programming in Objective-C (4th Edition) (Developer's Library)

u/wcbdfy · 1 pointr/learnprogramming

Programming in Objective-C by Stephan Kochen is an excellent intro/reference with detailed and clear explanation of Objective-C (the language you will be using).

You should also get the Big Nerd Ranch Guide to iOS programming for things specific to the iDevices.

Apple's developer reference/wiki covers everything else and is also pretty detailed. Stanford's iPhone development video lectures are okay, but I can see how they come in handy to someone who is just getting started.

You will need a mac (of course) and Xcode, and if you haven't used that before, you will need to get comfortable with it. You will need Xcode for many of it's features but if you are not a fan of the IDE and wish to use an editor for simpler things, many support Obj-C syntax highlighting.

u/adamthats · 1 pointr/learnprogramming

I had done just a little bit of Python (like, a few weeks of tinkering) before I got started with Objective C. I read some of Kochan's book Programming with Objective C whilst also reading some of Learning Cocos2D, but ultimately I just started playing, getting stuck and hitting the interwebs to get unstuck (reading lots, not spamming forums). I'm about 8 months in and I think I'm about 3 months from releasing my first game.

With my limited experience my advice would be to pick a simple project that you're genuinely interested in, chop it up into little problems / tasks, and work through them. If you're totally stuck, you probably need to cut that task up into smaller pieces. Work hard, read a lot, take a break occasionally, write a blog or diary so you can track your own progress, and have fun!

Starting iOS development is one of the best things I've ever done, although I'm not sure the missus would agree!

u/mayonuki · 1 pointr/learnprogramming

Invest in Kochan's Programming in Objective-C. One of the best programming books I've ever read.

Then once you have good unserstanding of Objective-C's syntax and data structures, I recommend iOS Programming: The Big Nerd Ranch Guide.

I went from no experience with Objective-C to getting hired as an iPhone programmer in a month and a half reading these books.

After these, when I come across something I don't know how to do, I usually look here first: Ray Wenderlich. Their tutorials are very very current. I go through them just to learn about iOS/Xcode features I didn't even know existed (there are tons!!).

I've tried (sometimes successfully) learning programming languages from free online resources (especially when I can't find good books), but I really think you shouldn't miss out on these. The cost is pretty minimal considering you just bought an Apple computer.

This kind of object oriented programming is pretty different from the web languages you have gone through. I think the first two books should help you get a basic understanding of Model, View, Controller design.

Finally, use a better title when asking for help!

u/Chronic8888 · 1 pointr/javascript

On this front... do everything you can on node school and on a somewhat unrelated note buy/download this book

u/automathematics · 1 pointr/javascript

Highly agree. Buy a kindle and read anything people you trust recommend.

I would recommend one javascript specific book, actually: http://www.amazon.com/Effective-JavaScript-Specific-Software-Development/dp/0321812182/ref=sr_1_1?ie=UTF8&qid=1414608930&sr=8-1&keywords=Effective+JavaScript%3A+68+Specific+Ways+to+Harness+the+Power..

I've been doing this a long time and there's still some stuff in there for me to learn every time I flip through it.

u/codevil · 1 pointr/iOSProgramming

The Big Nerd Ranch Guides for Objective C and iOS Programming are just about the best books for absolute beginners, I've found. I had programming experience in Java and Android apps prior to working on iOS, but read the two books anyway (online tutorials are the faster way to go) just to see if I could pick up something in-depth, and I did.

http://www.amazon.com/Objective-C-Programming-Ranch-Edition-Guides/dp/032194206X/ref=sr_sp-atf_title_1_3?ie=UTF8&qid=1408323435&sr=8-3&keywords=big+nerd+ranch+ios

http://www.amazon.com/iOS-Programming-Ranch-Edition-Guides/dp/0321942051/ref=sr_sp-atf_title_1_1?ie=UTF8&qid=1408323435&sr=8-1&keywords=big+nerd+ranch+ios

u/Zarro_Boogs · 1 pointr/learnprogramming

As the Big Nerd Ranch Objective-C Programming book so eloquently put it:
> The life of a programmer is mostly a never-ending struggle. Solving problems in an always-changing technical landscape means that programmers are always learning new things. In this case, “learning new things” is a euphemism for “battling against our own ignorance.” Even if a programmer is working with a familiar technology, sometimes the software we create is so complex that simply understanding what’s going wrong can often take an entire day.

>If you write code, you will struggle. Most professional programmers learn to struggle hour after hour, day after day, without getting (too) frustrated. This is another skill that will serve you well.

u/linkrift · 1 pointr/iOSProgramming

Can't go wrong with the Big Nerd Ranch. That'll get you going on obj-c and a simple starter app. Their iOS specific book is great if you don't mind translating some of the out of date stuff.

u/efroum · 1 pointr/IAmA

If you're just starting, I'd suggest Big Nerd Ranch's Objective-C Programming. http://www.amazon.com/gp/product/032194206X?ie=UTF8&at=&force-full-site=1&ref_=aw_bottom_links

u/nura2011 · 1 pointr/cscareerquestions

> Which of the three will give the best chance to telecommute?

From my experience, as a general rule, I have found that anything related to web development is especially suited for telecommuting, so your choice would be Ruby on Rails. You can telecommute with roles like Sharepoint developers, DBA, sysadmin, but my impression is that most of these roles are in traditional big companies and they may not always be open to 100% telecommuting.

But be aware that by choosing a field that doesn't require your presence on-site, you're competing with developers from developing countries who will be able to outbid you.

> Which of the three is the least challenging to be learned on your own (and if you have any good learning resources you can recommend, I'll take them all, thanks)?

I think all are equally challenging if your aim is to be really good in that field and difficulty is a subjective notion anyway.

As for resources: when I was dabbling in Ruby on Rails a few years ago, I found this tutorial very useful: Ruby on Rails Tutorial

You also need a good understanding of the Ruby programming language. I recommend Programming Ruby, though I liked The Ruby Programming Language because it was a lot more concise (if dated). You can ask /r/ruby for more suggestions.

u/IronSpekkio · 1 pointr/learnprogramming

http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177

this book is coauthored by the Matz - the creator of Ruby. its a really top notch book.

u/lucasec · 1 pointr/gatech

I initially learned Rails back in the day through a previous edition of this book, and found it a decent introduction. If you're already fluent in web programming and backend it may be a bit simplistic for your tastes, but it's a good introduction to "the Rails way" of doing things.

If you really want a deep dive on the Ruby language itself, far beyond what you'll need to get started on Rails apps, but what every mature developer should take the time to learn, David Flanagan's The Ruby Programming Language is a must-read.

By the way: don't knock the book until you try it. I think we've all had a bad experience with crappy, overpriced college textbooks, but professional reference books are a completely different story. It'll take less time than you think to make it cover-to-cover, and the organized, thorough presentation of a decent book ensures you'll come away with a complete understanding of the language that may even impress an interviewer when you're trying to get a job.

u/vfaronov · 1 pointr/webdev
u/jms_nh · 1 pointr/programming

Article doesn't tell you how, it's more like a handful of thoughts on how to do so, without any real data (as the author admits)

>But I think you should take more away than a handful of application-wide metrics. You should take away a preference for statistical and empirical consideration. Figure out how to quantify trends you observe and form hypotheses about how they impact code quality. Then do your best to measure them in terms of outcomes with the application. We lack a laboratory and we lack non-proprietary data, but that doesn’t stop us from taking the lessons of the scientific method and applying them as best we can.

Someone has already done this. Read chapters 8, 9, and 23 of Oram and Wilson's Making Software

u/milkeater · 1 pointr/ReverseEngineering

I think most is kind of a rough statement. Granted there were some truly gifted people in the 70's that rocked our world.

I think we have a LOT of research papers that we sift through and the legacy papers tend to stay highlighted in time. I can imagine if you sifted through everything that existed back then, you may be saying something similar.

I've found a few great ones and if you are heavy into software engineering, you may share the enthusiasm towards a book that came out several years ago: Greg Wilson - Making Software: What Works and Why we Believe it

He also has a talk where he references some of those papers: Greg Wilson talk

He comes off strong, but he backs it with research which I appreciate. It's more about bringing data to the table if you have something you'd like to discuss. Somewhat heavy handed, but there are good papers that I've read referenced there.

The continual evaluation of Conways law and it's research still holding true today is something that I continually enjoy (Although originating from a 1967 study reinforcing your point of seminal papers from that era)

u/Medicalizawhat · 1 pointr/learnprogramming

Try not to just accept the bits you don't understand. If you have code in your app that you don't understand you will run into problems debugging it eventually, and that process could be very painful. One tried and true method for understanding difficult code is to modify small pieces of it and see what the result is. Another good technique is to add lots of log statements so you can trace the code as it executes. Be sure to write descriptive log messages so you can tell what's going on.

I've been learning Android recently and understand how difficult it is getting started. Android programming is totally different to normal programming and it really helps to understand a bit about the Android system, it's APIs and the design philosophy that underpins it all. I would definetly recommend reading a book or two to help get your head around it. Two books I found useful are: The Busy Coders Guide to Android Development and Professional Android 4 Application Development.

And the most importat thing of all is persistance, stick with it!

u/omniuni · 1 pointr/learnprogramming

Lots of good advice here. For a book, I recommend the books by Reto Meier, Professional Android 4 Application Development. Google thought he was good enough to teach their Udacity course, so that's good enough for me. Plus, they're good books anyway.

Speaking of Udacity, you can watch all the lectures for free, which includes a demanding, but ultimately thorough Android development course.

u/bilateralconfusion · 1 pointr/androiddev

Buy and read this book. When you've finished reading it, read it again.
http://www.amazon.com/Professional-Android-Application-Development-Guides/dp/1118102274/

u/trefy · 1 pointr/Android

Sorry for the slow answer, I've been busy.
It is very hard to give a specific answer, it is a very vague question and a very large topic.
A couple of things come to mind though :
-First a rant, sorry but it is necessary. You will (or have) read everywhere that fragmentation makes developing for Android a nightmare. Total bullshit and the landmark of shitty fanboys that declare themselves journalists. You will have to decide for a lower version for your app. If your are only doing it for fun, 4.0 is more than enough. If not 2.2 allows you to score all the market. Target the last version & do your homework, all the tools are here to deliver a good experience to all these versions while using the last improvements (official compatibility library, actionbar sherlock, ...).
-Please don't buy a dozen of books. That's just a waste of money. If you have enough OOP knowledge, you don't even need one. If not, Reto Meier wrote one (http://www.amazon.com/books/dp/1118102274). It is recent enough (it is in the 4+ world) and since he is a developer advocate for Android at Google, you will find way less mistakes than from a random author.
-While we are on the topic, stackoverflow can be helpful BUT 90% of the answers are just plain terrible. If you use this website, always keep this in mind and try to be critical of the answers.
-developer.android.com should always be your first stop. There are introduction classes, and documentation for almost all Android related topics.
-If you want to keep informed about what is happening in the Android dev community (libraries, tools, apps, ...), http://www.youtube.com/user/androiddevelopers has an official youtube page and they even have a weekly video with the news. If you want more, circling the Googlers that work on Android + the biggest members of the open source community might be a good idea.
-Even if you suck at or don't care about design, you should still read the guidelines on the android dev website at least once. Keeping these in mind is really helpful when working on UI related problems.

u/TheePumpkinSpice · 1 pointr/explainlikeimfive

I'm studying up on how to create Android apps at the moment. Would you be more inclined to learning how to develop Android applications or iOS applications? If you're interested in learning to program Android apps, the Android application framework includes native Java libraries and thus conventions so you would be required to get comfortable with the Java programming language. The book I'm currently reading is a Wrox publication titled [Professional Android 4 Application Development](http://www.amazon.com/Professional-Android-4-Application-Development/dp/1118102274/ref=sr_1_1?ie=UTF8&qid=1380856547&sr=8-1&keywords=professional+android+4+application+development
).

As far as iOS applications go, I know that the programming language required is Objective C and I'm certain you would need a Mac to develop it on; although you CAN develop using a Mac virtual operating system, the performance is a huge drag. Good luck!

u/dstaley · 1 pointr/Android

I'd pick up a copy of Learn Java for Android Development. It's great for any level of programming knowledge, and it's specifically focused on Android development. However, this won't make you a great Android developer. After this book, I'd recommend getting Professional Android 4 Application Development. It's written by Reto Meier, the tech lead for the Android Developer Relations team at Google, and is pretty detailed without being overwhelming.

u/lacronicus · 1 pointr/androiddev

http://www.amazon.com/Professional-Android-Application-Development-Guides/dp/1118102274

pick it up for 30 bucks, read it, do the stuff. It'll get you where you need to be for most of the things you'd want to do on android.

u/FunctionPlastic · 1 pointr/AndroidGaming

I recommend Professional Android 4 Development. But why ask a non-dev sub a dev question? You would definitely get a better answer there.

Oh and since the move to Android Studio - you want to follow Google guides on setting up your environment, since the change happened recently and all books are outdated in this respect. So set up a basic environment and start coding - the book is relevant from that point on.

Really gives a great description of how all the different components of the system fit in together - the kernel, drivers, APIs, runtime/VM, etc.

u/unleashmysoul · 1 pointr/androiddev

The developer docs are a great place to learn the 'basic stuff' and terms like 'Bundle'.
I can recommend you this book: http://www.amazon.com/gp/aw/d/1118102274/ref=mp_s_a_1_1?qid=1370377881&sr=8-1&pi=SL75

Written by Reto Meier, a Google Android Advocate in the Android Relationship Team.

u/lasthope106 · 1 pointr/learnprogramming

For a complete beginner I would recommend Murach's C# 2010. It's not as well known as some other books, but I really like their format. The book uses this paired-page concept where the code, diagrams, pictures, etc. are in the right page and the explanation is on the left. Not to mention that they show you how to use the IDE, and give you a brief intro into GUI and DB programming.

For a more complete reference check Pro C# 2010.

u/indrora · 1 pointr/csharp

Three things:

  • Get an IDE that doesn't give you help. SharpDevelop is good for this.

  • Get the book "Pro C# and the .NET framework" from Troelsen: http://www.amazon.com/2010-NET-Platform-Andrew-Troelsen/dp/1430225491

  • Learn from production code and someone else's failures.

    I learned most of what I know today by writing VB apps and having the IDE convert them to C# (I stared with SharpDevelop)

u/borgidiom · 1 pointr/learnprogramming

If you are happy to fork out the cash then this is a good read

http://www.amazon.com/2010-NET-Platform-Andrew-Troelsen/dp/1430225491

Has a great range of topics from C# to WPF to ASP.NET.

u/nekochanwork · 1 pointr/learnprogramming

For some definitions:

REST

For a beginner like yourself, you can think of REST as meaning "pretty urls". It means much more than this, in the sense that RESTful urls encodes application state and interactions into the URL, but for your purposes, it is helpful to simplify REST down to "pretty urls". Reddit uses RESTful urls:

  • https://www.reddit.com/r/learnprogramming/comments/4l0qch/super_confused_on_how_to_start_learning_web/

    The non-RESTful (RESTless?) url would look something like:

  • https://www.reddit.com/comments.html?subreddit=learnprogramming&threadId=4l0qch&title=super+confused+on+how+to+start+learning+web

    MVC

    MVC means "model-view-controller", which refers to a specific way in which your application is organized in order to separate your domain layer (model), presentation layer (view), and business logic layer (controller). For a concrete example:

    Model: represents the data elements that you want to show to the user. A model is most often just a vanilla class with get/set properties. Let's imagine I'm building a blog from scratch and I want to show the user a page containing my post: my model logically includes my post (content, date, authors), comments (content, date, authors), etc. My model might look something like this:

    public class BlogPostModel
    {
    public Author[] Authors { get; set; }
    public DateTime CreatedOn { get; set; }
    public string Title { get; set; }
    public string Body { get; set; }
    public string[] Tags { get; set; }
    public Comment[] Comments { get; set; }
    }

    View: a view transforms the model into something your users can see and understand. In web development, a "view" is nearly always the HTML:

    <html>
    <head><title>@(Model.Title)</title></head>
    <body>
    <h1>@(Model.Title)</title>
    <div>By @(Model.Authors) on @(Model.CreatedOn.ToString("YYYY-mm-dd"))
    <div>
    @foreach(var tag in Model.Tags)
    {
    <a href="blog/tags/@(tag)">@(tag)</a>
    }
    </div>
    <div>@Model.Content</title>
    <h2>Comments</h2>
    @foreach(var comment in Model.Comments)
    {
    <div>. . .</div>
    }
    </body>
    </html>

    Controller: a controller contains your business logic. Typically, this includes logging users in, reading/writing to the database, validating user input on the server side. In ASP.NET MVC, your controller is a class which inherits from System.Web.Mvc.Controller. The controller class can exposes "actions", which are simply methods that return a type of ActionResult. ASP.NET will expose each "action" through a RESTful url called a "route". A simple controller looks like this:

    public class BlogController : Controller
    {
    // url: ~/blog/Article/{articleId}
    public ActionResult Article(int articleId)
    {
    // ...
    }

    // url: ~/blog/AddComment/{articleId}
    public ActionResult AddComment(int articleId, CommentModel model)
    {
    // ...
    }
    }

    ASP.NET

    ASP.NET is a set of classes and libraries built on top of the .NET Framework which helps you build web application. ASP.NET comes in two flavors:

  • ASP.NET WebForms. You can simply ignore this. No one uses WebForms anymore.
  • ASP.NET MVC. Learn this. This is a framework which makes it easy to write RESTful applications in the traditional model-view-controller fashion.

    WebAPI

    WebAPI allows you build RESTful web services that do not have a front-end (that is, calling methods on your API does not return any HTML). This can be occasionally useful.

    .NET

    The .NET framework is a set of libraries developed by Microsoft which helps developers build applications that execute in the Microsoft Common Language Runtime. If use C# on Windows, you already use .NET.

    Mono is alternative, open-source implementation of the .NET framework which runs on Linux.

    jQuery

    jQuery is a Javascript framework which is tailored to selecting and manipulating the DOM on the client side. (The "DOM" refers to the browsers representation of HTML elements on screen; changing an element on the DOM usually has a visible effect to the user in the browser.) It also has some useful utility methods for sending AJAX requests, animating elements on screen, etc.

    Although jQuery is omnipresent in web development, it's not a prerequisite for a beginner to learn. You can pick it up over time as you develop your skills.

    > I understand HTML, CSS, JavaScript, SQL, C# basics. What is the next step?

    Pick up a copy of Pro ASP.NET MVC 5 and start learning.
u/UpNorthMark · 1 pointr/csharp

https://www.amazon.ca/Pro-ASP-NET-Core-MVC-2/dp/148423149X

https://www.amazon.ca/Pro-ASP-NET-MVC-Adam-Freeman/dp/1430265299

Just about to pull the trigger one of these.
I'm not going going be applying for jobs for a couple of years because of college. Should i bother with MVC 5 or try to jump straight into core.

u/roastymctoasty · 1 pointr/learnprogramming

Cool thanks, I'll try those then.

I thought it also might be worth working through this book: http://www.amazon.com/Pro-ASP-NET-Experts-Voice-ASP-Net/dp/1430265299

Have you heard much about it?

u/intangiblemango · 1 pointr/AcademicPsychology

My program requires a number of stats classes and my advisor requires a number more than that. My program also offers a few data science-related specializations, which are, of course, optional, but great.

For some independent learning, Andy Field's Discovering Statistics Using R -- https://www.amazon.com/Discovering-Statistics-Using-Andy-Field/dp/1446200469/ref=sr_1_1?ie=UTF8&qid=1538060236&sr=8-1&keywords=discovering+statistics+using+r -- and datacamp.com are both handy resources.

u/JunoJunoJunoJuno · 1 pointr/learnprogramming

If you have some experience with other languages already, especially if it's C++ or Java, then I'd recommend the "C# in a Nutshell" books. The first couple of chapters will cover most of the content of the language. http://www.amazon.com/C-5-0-Nutshell-Definitive-Reference/dp/1449320104

u/Xavierxf · 1 pointr/learnprogramming

/r/csharp recommends C# in a Nutshell.

Another vote for the Yellow Book because it's a great introduction to programming in general, along with C#.

u/JacksUnkemptColon · 1 pointr/dotnet

Perhaps not what you're looking for as this isn't an internet source, but I found the sections in C# 5.0 in a Nutshell on concurrent programming were especially good at explaining this stuff to a non-genius like myself.

u/pauloortins · 1 pointr/csharp

There are several books, blogs and videos that you can use.

These books are good choices:

C# 5.0 in a Nutshell and
Pro C# 5.0 and the .NET 4.5 Framework

I also wrote a blog post about it.

Resources to become a Ninja: C#

u/ewiethoff · 1 pointr/learnpython

> Is there any systematic book or tutorial that explains why you do every single thing it has you do?

I recommend the Python Cookbook. The recipes are fine, but really its the combination of code and explanation that's invaluable. So, read the whole book; don't skip the recipes that don't interest you.

u/nagracks · 1 pointr/learnpython

I am Python beginner too and I would say Python Cookbook is a very nice book. You should try it.

u/kurashu89 · 1 pointr/learnpython

If you want a serious book recommendation: Learning Python 5th Edition by Mark Lutz. It's a monster at 1600 pages but to say it's thorough is an understatement. I got the ebook so I can quickly search through it on my phone. Even though I wouldn't consider myself a beginner anymore, I find between this book and the Python Cookbook I find answers to most of my problems (unless they're related to a library).

You can also read Learn Python the Hard Way (my introduction to Python 2). Which is free but not anywhere near the scale of Learning Python. As a warning, there's some coarse language used in it.

If you don't know any Python -- and this will probably stir the pot a little -- learn Python 3. BUT learn how to make it Python 2 compatible. Sure, you'll give up things like advanced tuple unpacking and yield from (to name two off the top of my head) and you'll probably have to use six but when the day comes that you can fully move your library to just Python 3, you'll be thankful.

If you feel comfortable enough with Python to begin approaching a web framework, I would personally recommend Flask. I'm sure quite a few people would disagree and they probably make valid points. But Flask is easy to start with:

from flask import Flask

app = Flask(name)

@app.route('/')
def index():
return "Hello World"

if name == 'main':
app.run()

Miguel Grinberg (you'll see him float around /r/Flask and some of the other Python subs occasionally) has both a great blog series and a great book on building Flask projects. It's not the end all be all of Flask knowledge and honestly, I'd like see more written on working with bigger projects, but given Flask is only 4 years old I'm not surprised.

For Django, I've heard lots of good things about Two Scoops of Django but I've not read it (though, I need to at some point).

I'm unsure about other frameworks like Pyramid or TurboGears or WebPy.

You'll also want to have working knowledge of HTML (not hard), CSS and Javascript (much harder). And getting chummy with libraries like Bootstrap and JQuery/Angular/whatever is probably a good idea, too.

There's also specific concepts you'll want to be familiar with depending on where and what you work on: things like REST, JSON, Ajax, CSRF, etc.

u/KennedyRichard · 1 pointr/learnpython

Python Cookbook 3rd ed., by David Beazley and Brian K. Jones, has a dedicated chapter about metaprogramming. The book is so good the other stuff may also give some insight on metaprogramming or alternatives. I already read it and it gave me insight on my code about metaprogramming and other topics, so it is pretty useful. You can also find a lecture from Beazley about the topic with a quick google search with his name and the "metaprogramming" word.

There's also Fluent Python by Luciano Ramalho, which has three dedicated chapters about metaprogramming. Didn't read the chapters myself but I'm half way into the book and it is awesome, so I'm having great expectations about those chapters.

Don't mind the metaprogramming "chapter count", it is just a piece of information. Quality is what you should be looking for. And I believe those books have it. Even though I admit an entire book about metaprogramming would be neat.

u/DannyckCZ · 1 pointr/Python

Have a look at Python Cookbook, it might just right for you.

u/rocketsocks · 1 pointr/askscience

Code every day. Work on as many little interesting projects as you can. If you don't know any languages I'd suggest starting with Python, there are a million different tutorials and resources online, so getting started shouldn't be a problem.

Add to that, read some books to learn about how software development projects work, different techniques, best practices, pitfalls, etc. Here are my recommendations on books: The Pragmatic Programmer, Refactoring, Code Complete (a bit dated, but still solid), Rapid Development (slightly mis-titled, it's a good overview of different development practices), The Architecture of Open Source Applications, and Design Patterns. Code as much as you can, be ambitious, be analytical and introspective about the problems you run into, and read and understand those books too. There's a lot more you'll need to learn to become a good developer, but what I've described will give you a very strong base to build on.

Oh, and if you don't already know discrete mathematics you'll need to pick that up. I'd recommend this book.

u/Enigma3613 · 1 pointr/programming

Thanks for the recommendation!

What do you think about his books on Rapid Development and Software Estimation?

u/zzygan · 1 pointr/programming

This article is a ripoff of a couple of chapters from Steve McConnell's 1996 book, Rapid Development.

He could have at least given credit to that book for all of the point mentioned. Its not quite word for word, but there are too many similarities to be co-incidental.

u/theqlabs · 1 pointr/REGames

He wrote a book as well, highly recommended: http://smile.amazon.com/dp/1593272898 - one of the only definitive sources for IDA Pro information that isn't scattered about all over the Intardnets.

u/satysin · 1 pointr/learnprogramming

This is a good book. You will obviously need to have some understanding of assembly language for whatever platform you are interested in targeting (I am guessing x86?)

u/Liam2349 · 1 pointr/csharp

Dependency injection and interfaces are mostly more advanced concepts. You can code most things without doing them properly. It comes into the design of your software and testability. It's not something I'd recommend learning first. When it's time, I highly recommend reading The Art of Unit Testing by Roy Osherove: https://www.amazon.co.uk/Art-Unit-Testing-examples/dp/1617290890/ref=sr_1_1?ie=UTF8&qid=1511991453&sr=8-1&keywords=roy+osherove

Until then, you're better off learning how to actually code in C#, and learning important C# features such as the differences between reference and value types, LINQ, asynchronous programming, threading, and more. You can learn all of this with Venkat's C# for beginners series: https://www.youtube.com/playlist?list=PLAC325451207E3105

To develop a web project, you could then move onto Venkat's MVC tutorial series, however if you're planning to store data, I recommend first watching his Entity Framework and SQL Server series.

u/seventeenninetytwo · 1 pointr/programming

I recommend focusing on the theory and patterns more than any toolkit or framework. Theory stays with you forever while frameworks come and go and are often language specific.

This book got me started. The examples are all in C#, but the theory applies to any object oriented language.

I've read that $30 book far more than any of the $200 textbooks from university, and it improved the quality of my work dramatically.

u/Nilzor · 1 pointr/programming

I'd add the following two books to the list to cover TDD and the Software Design phase:

u/DANjEEEEE · 1 pointr/csharp

There is a 2nd edition version of Art of Unit Testing which came out at the end of 2013 (Original is from 2009) with the examples focusing on C# which may/may not be more useful for people interested:

UK Amazon Link

US Amazon Link

u/InkyPinkie · 1 pointr/learnpython

If you don't mind answering, can you tell me whether this book is a good way to learn OOP in Python? Or is a whole book dedicating to OOP an overkill?

u/uncoil · 1 pointr/learnprogramming

Check out this book, I think it's a good "next step" kind of book now that you know some Python, and it has a lot of good example code imo.

u/bhldev · 1 pointr/learnprogramming

Best intro to OOP I saw is actually in a Python book https://www.amazon.ca/Python-3-Object-Oriented-Programming/dp/1849511268

You can also take a look http://www.oodesign.com/ for design patterns

Basically you have an example that is pretty good for procedural programming, an input with an output. Not everything is like that. OOP is exactly that, object oriented. Why do you use objects? To model something. And then you can add behaviors and properties to that model. For example, a car can drive (a behavior), it is red (a property) and there are many different kinds of cars (inheritance).

So basically, an object (class) is like a blueprint for a species (instances) and that object can have children (inheritance) that share the same traits and be treated the same as the parent (polymorphism). That last bit is the part to wrap your head around; once you see that, then you see the point.

So unless you need to model a physical or abstract process, OOP is not really necessary.

u/jpmmcb · 1 pointr/FreeCodeCamp

For one of my projects, I decided to just use vanilla JavaScript AJAX and for the rest, I ended up using jQuery. I felt this gave me a better handle of what was going on behind the scenes.

For vanilla JavaScript resources, the MDN documentation was helpful to get going. Using vanilla JavaScript was hard and it isn't super intuitive. This is why I think most people just end up using a library to call out to APIs. There's also a good Lynda course that's called "AJAX and JavaScript." It's pretty fast paced, and the course assumes you already know basic JavaScript, but I found it helpful with learning vanilla js ajax.

As far as jQuery goes, this video was also really helpful. Again, fairly fast pace but overall, good info. Once again, using the jQuery documentation is ESSENTIAL. I've found that in general, if I am stuck, asking myself the right questions, going to the documentation, and finding the answers is usually best.

I also read through the book Secerts of the JavaScript Ninja which had a few things to say about asynchronous code. Hope this helps!

u/whoisjuan · 1 pointr/dailyprogrammer

I would add Secrets of a JavaScript Ninja, written by John Resig (the creator of jQuery). An amazing resource with a nice philosophical approach about JS.

u/MaybiusStrip · 1 pointr/web_design

HTML and CSS are easy enough to pick up from tutorials and on an "as you go" basis.

Javascript is a difficult and intricate language. If you don't have a programming background, it is not a great one to start with. You will more or less be doomed to be mediocre at it (which might be fine for adding minor interactions, importing plugins, etc...). Functions as first class objects, closures, prototypal inheritance, and other concepts that are used frequently in Javascript can be tricky to grok.

I highly recommend Secrets of the Javascript Ninja. Javascript: The Good Parts is a great resource too but it goes over things to quickly for them to really stick and requires a couple readings.

u/eddyvanhelgen · 1 pointr/javascript

Books that helped me to get the hang of JS

John Resig's Secrets of the JavaScript Ninja and Douglas Crockford's JavaScript: The Good Parts are pretty much the only ones worth reading in my opinion.

Projects

The best thing would be to build something you want to use yourself. Maybe you try cordova and build a small app with the browser platform so that you can create a simple App that you can bring to your Smartphone.

More advise

Read a lot of code: TODO MVC is a good place to start, people try to write good code for this one because they want you to use their framework :-). The problem with the source code of many projects is that the JS ecosystem is in a constant flux and ES6 modules are skyrocketing right now. You may want to check out the jQuery source code - you can pretty much watch the evolution by looking at older versions of the source code and how it evolved.

If you feel really adventurous the NodeJS source code is a fun read - although it's a very big project that also got some C/C++ code sprinkled in - but that shouldn't be a problem for you :-).

I would advise you not to bother reading the Angular1 code for the time being, Angular2 maybe interesting but its written in Microsoft's TypeScript - which is a nice language on top of JS that is worth learning about.

u/sharkmandan · 1 pointr/javascript

For more advanced topics, "Secrets of the JavaScript Ninja" covers many of the advanced techniques popular libraries use (including prototype and jQuery), written by the jQuery creator.

It assumes you have an understanding of the fundamentals so it gets into the advanced topics pretty quickly.

http://www.amazon.com/Secrets-JavaScript-Ninja-John-Resig/dp/193398869X

u/alexlafroscia · 1 pointr/javascript

I really enjoyed Secrets of a JavaScript Ninja by John Resig, the main person by jQuery. I found it to be really helpful as someone that was comfortable with JS and wanted to know more, but if I remember right the beginning of the book went over some more of the fundamentals.

u/daminshi · 0 pointsr/learnprogramming

C++ Without Fear: A Beginner's Guide That Makes You Feel Smart (2nd Edition)

http://www.amazon.com/Without-Fear-Beginners-Guide-Makes/dp/0132673266/ref=sr_1_1?s=books&ie=UTF8&qid=1395309620&sr=1-1

Been using this one for a while and it's pretty good. It goes over all the concepts and many parts of the language without getting insanely technical out of the gate.

u/sh0rug0ru · 0 pointsr/java

My favorite book is Growing Object Oriented Software Guided By Tests.

I also enjoyed Agile Software Development, Principles, Patterns, and Practices. The older version of the book is in Java, the newer version in C#. But, it's more about the OO principles than the specifics of the language, so I'd recommend the C# version. Here's a really good chapter from the book, containing a good study of both bad OO and better OO.

u/odonian_dream · 0 pointsr/gamedev

Dude, read a good JS book, learn the basics of the framework you wanna use, bookmark the API reference page and start cranking.




If you need tutorials to understand coding principles you're not ready to make a game. Tutorials are for understanding certain un-obvious aspects of game dev or framework's way of doing things.





They're NOT solid foundations for learning game dev, just crutches.

u/RollingGoron · 0 pointsr/learnprogramming

A couple of questions:

  1. What Phone do you use?
  2. What computer OS do you use?


    If you have a PC, you can only develop for Android.
    If you have a Mac, you can developer for iOS or Android.

    I highly recommend a book over a website. They are much more comprehensive and go into greater detail.

    Mac/iOS uses Objective-C.
    http://www.amazon.com/Objective-C-Programming-Ranch-Guide-Guides/dp/032194206X/ref=sr_1_1?ie=UTF8&qid=1419300572&sr=8-1&keywords=big+nerd+ranch+objective+c

    http://www.amazon.com/iOS-Programming-Ranch-Guide-Guides/dp/0321942051/ref=sr_1_1?ie=UTF8&qid=1419300564&sr=8-1&keywords=Big+Nerd+ranch+ios

    Android

    http://www.amazon.com/Android-Programming-Ranch-Guide-Guides/dp/0321804333/ref=sr_1_1?ie=UTF8&qid=1419300685&sr=8-1&keywords=Big+Nerd+ranch+android

    Big Nerd Ranch books are awesome.
u/blazingrooster · 0 pointsr/learnprogramming

Not really a tutorial, but I found The Ruby Programming Language by Flanagan and Matz to be a really fantastic introduction to Ruby for experienced programmers.

u/sethgecko · -2 pointsr/AskReddit

Not online, not for beginners, but if ever you are in a situation where you will have to maintain the code you wrote... this is something you will wish you read as early in your adventure into coding as possible:

Agile Principle Patterns Practices in C#

Agile Principle Patterns Practices in Java

u/rodion_89 · -5 pointsr/javascript

Don't listen to jakelear, w3schools is an excellent resource for beginners.

That said, once you are on your feet and getting deeper into JavaScript check out these books. They are wonderfully useful and informative.

http://www.amazon.com/gp/product/0596517742
http://www.amazon.com/gp/product/0596805527
http://www.amazon.com/gp/product/193398869X