(Part 2) Reddit mentions: The best object-oriented design books

We found 1,631 Reddit comments discussing the best object-oriented design books. We ran sentiment analysis on each of these comments to determine how redditors feel about different products. We found 321 products and ranked them based on the amount of positive reactions they received. Here are the products ranked 21-40. You can also go back to the previous section.

21. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)

    Features:
  • Prentice Hall PTR
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition)
Specs:
Height10.25 Inches
Length8.5 Inches
Number of items1
Weight3.76108618972 Pounds
Width2.15 Inches
▼ Read Reddit mentions

23. Core Java Volume I--Fundamentals (10th Edition) (Core Series)

Pearson Prentice-Hall Prof
Core Java Volume I--Fundamentals (10th Edition) (Core Series)
Specs:
Height9 Inches
Length7 Inches
Number of items1
Weight3.45243902292 Pounds
Width3 Inches
▼ Read Reddit mentions

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

C++ Without Fear: A Beginner's Guide That Makes You Feel Smart (2nd Edition)
Specs:
Height9.04 Inches
Length7.07 Inches
Number of items1
Weight2.0723452628 Pounds
Width1.29 Inches
▼ Read Reddit mentions

25. Object-Oriented Programming in COMMON LISP: A Programmer's Guide to CLOS

    Features:
  • Used Book in Good Condition
Object-Oriented Programming in COMMON LISP: A Programmer's Guide to CLOS
Specs:
Height9.25 Inches
Length6.5 Inches
Number of items1
Weight0.87523518014 Pounds
Width0.75 Inches
▼ Read Reddit mentions

26. Programming in Objective-C, Third Edition (Developer's Library)

Programming in Objective-C, Third Edition (Developer's Library)
Specs:
Height9.25 Inches
Length7.25 Inches
Number of items1
Weight1.8298367746 Pounds
Width1 Inches
▼ Read Reddit mentions

27. Smalltalk Best Practice Patterns

Smalltalk Best Practice Patterns
Specs:
Height9.1 Inches
Length6.9 Inches
Number of items1
Weight0.9259415004 Pounds
Width0.6 Inches
▼ Read Reddit mentions

28. Starting Out with C++: Early Objects (8th Edition)

    Features:
  • Used Book in Good Condition
Starting Out with C++: Early Objects (8th Edition)
Specs:
Height10 Inches
Length8 Inches
Number of items1
Weight3.9242282636 Pounds
Width1.6 Inches
▼ Read Reddit mentions

29. Programming Ruby 1.9 & 2.0: The Pragmatic Programmers' Guide (The Facets of Ruby)

    Features:
  • Pragmatic Bookshelf
Programming Ruby 1.9 & 2.0: The Pragmatic Programmers' Guide (The Facets of Ruby)
Specs:
Height9.2 Inches
Length7.5 Inches
Number of items1
Weight3.53621468248 Pounds
Width1.8 Inches
▼ Read Reddit mentions

30. Essential C# 6.0 (5th Edition) (Addison-Wesley Microsoft Technology)

    Features:
  • Addison-Wesley Professional
Essential C# 6.0 (5th Edition) (Addison-Wesley Microsoft Technology)
Specs:
Height9.1 Inches
Length7 Inches
Number of items1
Weight3.417165061 Pounds
Width2.2 Inches
▼ Read Reddit mentions

31. Object-Oriented Software Construction (Book/CD-ROM) (2nd Edition)

Object-Oriented Software Construction (Book/CD-ROM) (2nd Edition)
Specs:
Height9.5 Inches
Length7.25 Inches
Number of items1
Weight3.73022147304 Pounds
Width1.25 Inches
▼ Read Reddit mentions

34. Concurrency in C# Cookbook: Asynchronous, Parallel, and Multithreaded Programming

    Features:
  • O Reilly Media
Concurrency in C# Cookbook: Asynchronous, Parallel, and Multithreaded Programming
Specs:
Height9.19 Inches
Length7 Inches
Number of items1
Release dateJune 2014
Weight0.74 Pounds
Width0.47 Inches
▼ Read Reddit mentions

35. Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries

Used Book in Good Condition
Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries
Specs:
Height9.25 Inches
Length7.5 Inches
Number of items1
Weight1.35 Pounds
Width0.81 Inches
▼ Read Reddit mentions

36. 21st Century C: C Tips from the New School

O Reilly Media
21st Century C: C Tips from the New School
Specs:
Height9.19 Inches
Length7 Inches
Number of items1
Release dateOctober 2014
Weight1.543235834 Pounds
Width0.92 Inches
▼ Read Reddit mentions

37. JavaScript: The Definitive Guide

Used Book in Good Condition
JavaScript: The Definitive Guide
Specs:
Height9.19 Inches
Length7 Inches
Number of items1
Weight2.866009406 Pounds
Width1.73 Inches
▼ Read Reddit mentions

38. Ruby on Rails 3 Tutorial: Learn Rails by Example (Addison-Wesley Professional Ruby Series)

Ruby on Rails 3 Tutorial: Learn Rails by Example (Addison-Wesley Professional Ruby Series)
Specs:
Height9.25 Inches
Length7.25 Inches
Number of items1
Weight1.96652337704 Pounds
Width1.25 Inches
▼ Read Reddit mentions

39. The Principles of Object-Oriented JavaScript

No Starch Press
The Principles of Object-Oriented JavaScript
Specs:
ColorMulticolor
Height9.25 Inches
Length7.06 Inches
Number of items1
Release dateFebruary 2014
Weight0.55 Pounds
Width0.29 Inches
▼ Read Reddit mentions

40. Design Patterns CD: Elements of Reusable Object-Oriented Software (Professional Computing)

Design Patterns CD: Elements of Reusable Object-Oriented Software (Professional Computing)
Specs:
Height9.31 Inches
Length7.56 Inches
Number of items1
Weight0.22928075248 Pounds
Width0.821 Inches
▼ Read Reddit mentions

🎓 Reddit experts on object-oriented design books

The comments and opinions expressed on this page are written exclusively by redditors. To provide you with the most relevant data, we sourced opinions from the most knowledgeable Reddit users based the total number of upvotes and downvotes received across comments on subreddits where object-oriented design books are discussed. For your reference and for the sake of transparency, here are the specialists whose opinions mattered the most in our ranking.
Total score: 1,050
Number of comments: 10
Relevant subreddits: 1
Total score: 73
Number of comments: 8
Relevant subreddits: 2
Total score: 71
Number of comments: 10
Relevant subreddits: 2
Total score: 68
Number of comments: 30
Relevant subreddits: 2
Total score: 29
Number of comments: 11
Relevant subreddits: 1
Total score: 22
Number of comments: 8
Relevant subreddits: 2
Total score: 21
Number of comments: 15
Relevant subreddits: 1
Total score: 19
Number of comments: 8
Relevant subreddits: 1
Total score: 14
Number of comments: 9
Relevant subreddits: 2
Total score: 10
Number of comments: 8
Relevant subreddits: 2

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

Shuffle: random products popular on Reddit

Top Reddit comments about Object-Oriented Design:

u/NookShotten · 1 pointr/learnprogramming

I started off with teamtreehouse.com and did their front-end developer track, which introduced me to HTML / CSS / Javascript. I had tried Codecademy prior to that, but I felt that it was just teaching me to follow directions, not teaching me to code.

I read the core chapters of Javascript for Professional Web Developers and then did the same for Javascript: The Definitive Guide. This is what really gave me a strong base understanding of the Javascript language (arrays, objects, prototypical inheritance, etc.).

Along the way I started using jQuery for DOM manipulation, which really made things easy, but it felt just...too easy. Like I was cheating myself by using this magical tool that I didn't really understand. So I started reviewing the DOM-related chapters of the two books I mentioned above, which is something I'm currently still undertaking.

As for AngularJS I've been trying to follow this Thinkster.io guide which I think has a pretty solid set of resources. I'm by no means an advanced AngularJS user, but hopefully in time I'll continue to grow. My current project is for my wedding, and uses an array of JS objects, each containing hotel information (name, location, description, website, etc). It then plots them on a Leaflet.js map and adds an entry in the list below each time I add a new hotel. I was pretty proud of that.

As for Node.JS, Professional Node.js has been really good so far. I learned enough to implement an XMPP bot at work, which was well received.

I'm continuing my education on Node.js--specifically with Express which I'm learning at the moment through MEAN Web Development


As for Python, I just finished my first course (Programming Fund. I) which was in Python, so I know the basic syntax. PHP I can read well enough, but sort of gave up on learning (for now) once I found server-side Javascript.


It probably seems like I read a lot of books, but I do want to mention that I haven't 'finished' these fully; I usually read it section by section, sometimes jump between books. I just have an erratic reading style, I guess.

I think the most important things are:

  • Find something you're passionate about

    I really enjoy Javascript and I think that has been a major motivator for me. I don't think I could have put the same level of effort into learning, say, PHP, which just doesn't excite me in the same way.

  • Find a solid primary resource

    I know that the accessibility and clarity of a CS-book can be totally subjective, but from what I've found there are almost always a certain set of resources people universally praise (like Definitive Guide / Good Parts / Eloquent Javascript for JS). I spend a good amount of time researching what the community for the language / framework tend to agree is the best resource.

  • Write out the examples from the books

    Especially for big tomes like The Definitive Guide which are just choke full of great snippets, I've found that its super useful to type out each example that you do not 100% understand. I've even found some errors in the books this way, which only served to help me understand how it really works even more.


  • See if there's a problem you can solve along the way

    This was big for me when it came to Node. The company I work for had a lot of traffic in their Jabber rooms and it was difficult to quantify it. I'd like to move to a SW Developer position there someday, so I decided that I'd try to solve the problem by getting a Jabber bot that monitors and records activity based on room, user, time. Having a tangible goal in a real-world context made me more motivated to figure out how I could use my tools to effectively.

  • Establish a good workflow

    Find an IDE you love and learn it inside and out. Get all those fancy-pants plugins and add-ons that make it hyper-functional. Find out which tools really 'click' for you and learn how they work. I've recently found myself very happy using Sublime Text as an IDE, Yeoman for boilerplate (love Grunt so much), and SASS as a CSS preprocessor (with Susy / Bourbon ). It just feels so satisfying having a solid setup, and I think that that kind of satisfaction with your environment makes it easier to learn.


    Overall I still think I have a lot to learn and wouldn't claim that I'm an expert in any realm yet, but eventually--with time--I hope to be.
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/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/BroDudeGuy · 10 pointsr/iOSProgramming

You can dive right into Objective C, I was only vaguely familiar with C and I've published a few apps without any problems. However, if you're intent on learning C pick up 'The C Programming Language' (K&R), not only the best C programming book, but one of the best programming books ever written.

Objective C books, I recommend one of the two or both books,
'Programming in Objective C 3rd edition' or
'Objective C: The Big Nerd Ranch Guide'

Both of these books are excellent resources for learning and I keep them close by whenever I have a question.

In terms of learning iOS development. I recommend going into iTunes U and downloading the latest Stanford University iPhone development course. I believe Winter 10 is the newest, follow along those classes and the class website, treat it like a real class, do the homework and all the assignments. There is no text book for the class, but this other book by Big Nerd Ranch, 'iOS Programming: The Big Nerd Ranch Way' is totally awesome.

After these classes and books you should have a great foundation for iOS development. Once you feel comfortable with everything and have an app or two under your belt, download Madison Technical College's Advanced iPhone Development course videos from iTunes U and Apple's own WWDC Session Videos.

Each MTC video is about 3 hours, watch them in chunks. The professor, Brad Larson is one of the best iPhone developers out there and in my opinion is one the best contributors to the community, (see his posts on stack overflow).

Lastly, check out www.raywenderlich.com. My personal favorite iPhone development website. It's updated every Monday, Wednesday, Friday with great technical tutorials that are funny and educational.

Best of luck to you and welcome to iOS development :-D.

u/baultista · 2 pointsr/learnprogramming

I've always felt like C is a good language for a programmer to think in. With that being said, I often recommend that a programmer who doesn't need to know C++ learn C if (s)he wants to learn something that will improve his/her skill across the board.

C will give you a good appreciation of what's going on behind the scenes in many of the languages you use. You'll get an appreciation for how passing by value and reference works in other languages thanks to pointers. You'll learn how your strings are actually managed in memory. You'll have a better understanding of how many of those built-in generics you may use (List<>, LinkedList<>, HashMap<>) actually work, because if you want to use them in C you'll have to implement them yourself or download a source file and read it to understand the author's implementation.

This knowledge will help you build more elegant solutions. You'll be less sloppy and gratuitous creating new strings anywhere and everywhere, and may even find yourself using references more often. Your code may or may not be cleaner, but you'll have an appreciation for how and why you should write code for runtime efficiency. You'll be more likely to use the right data structure for your task at hand.

The best part is that C has a great standard resource for learning the language. Pick up The C Programming Language Second Edition and read it cover to cover. By the time you're done you'll know everything you need to know about C, and will have a wonderful reference in the even that you need to use C later on.

If you want to improve your object-oriented programming skills, you don't need to learn a new language. It is best to learn OO independent of any language in order to gather a strong understanding of the underlying concepts and to be able to apply it to any language. Craig Larman's Applying UML and Patterns is the best book I've ever read on the subject.

u/[deleted] · 1 pointr/unrealengine

Edit: Originally posted as a reply in the comment section of the gamedev subreddit.

Disclaimer: I am no expert with unreal, i simply did some reading for the engine and watched some videos to see how things are working and to decide if i should be sticking with this engine. I post this comment in high hopes that anything i write here might help you.

You should spend some time in unreal's documentation manual and read the Blueprint section. Basically, the manual is a great source and also has some links to videos about how some stuff works.

Different surfaces for the player to walk on

You create assets (surfaces) on your 3d software and import them to the engine and then use them in the level editor OR you use the boxes (or any shape basically) given by the engine (adjust their height/width/etc) and create the surfaces you want by combining them (placing basic shapes in the right order to create more complex shapes, buildings, etc). If i recall correctly, they (unreal editor's shapes) come collision-ready.

A very basic building that the player can enter

Same as above. You either create a building in a 3d software and import it or use 4 walls using unreal's editor. In order to enter it (if you want to make it so that entering a building loads a different location which would work as the inside of the building) you would have to put some kind of "trigger event on collision/player overlap" (look up the exact naming) blueprint (google is your best friend, as well as the manual) that would take you to the other area.

Switches for the player to interact with

Same as above: level blueprints that will have trigger boxes in certain locations inside your level that you want to be interact-able. The video i posted above has something similar with a moving door inside the level i think, check it out. It might be from an outdated version but most of the things should work the same (learning the logic comes first, you can find the exact naming from the manual/google/forums).

adding sounds for footsteps and music

I think this is done with the animation blueprints or animation menu. You add the sound/effect you want on the frame of the animation you want to use it and it plays itself (the sound/effect) every time the animation passes through that frame.

I have basically 0 experience with coding, should I learn coding at this stage, or will that confuse me even more?

Well, I think you would have an easier time with something like gamemaker studio but its not free (there is a free version but AFAIK its heavy limited). Unreal is a industry-focused engine and has it's quirks; also, it uses C++ which isnt considered the easier language to learn/use. BUT, in version 4.12 (latest) they have released an experimental "blueprints-to-C++" baker which is only gonna get better with each newer version. What does this have to do with you? You could learn the blueprints system (which is considered easier than learning to code in c++, especially for artists since it uses a more visual approach) and then, when the baker is finalised, use it to bake your blueprints to C++.
Why would you want to bake blueprints to C++? Well, its estimated by the unreal team that blueprints are around 20 times slower than coding your game in C++. So if you want a heavy mechanical game (with a lot of calculations etc), or a mobile game with a lot of features you can understand that making the whole game in blueprints would make the game slow. BUT, since you are a beginner you can easily make games by ONLY using the blueprints. Anyway, if you want to learn how to code (it's NOT that hard, really) i would suggest Alex Allain's excellent Jumping into C++

Should I use an Earlier version of Unreal so I know it will work, or use the most recent?

I would advice against that. Use the latest which is bug-free and simply learn the small differences for blueprint/naming between the version you use and the version the videos are using. If you learn the logic behind what they are doing with blueprints (which isnt hard if you pay a bit of attention and read the blueprint section of the manual) it will be easy to implement the same in the latest, feature-complete version. Take a look at unreal engine's youtube channel. They have a ton of blueprint videos. You can replicate a few of them to get a bit of taste of how blueprints work.

Take all of the above with a grain of salt. Like i said, i am not an expert in unreal engine so i might be wrong about some things (i dont think i am wrong about the topics discussed but still, i have to leave a disclaimer in case i am :P )
Hope it helps, have fun!

u/root_pentester · 3 pointsr/blackhat

No problem. I am by no means an expert in writing code or buffer overflows but I have written several myself and even found a few in the wild which was pretty cool. A lot of people want to jump right in to the fun stuff but find out rather quickly that they are missing the skills to perform those tasks. I always suggest to people to start from the ground up when learning to do anything like this. Before going into buffer overflows you need to learn assembly language. Yes, it can be excellent sleep material but it is certainly a must. Once you get an understand of assembly you should learn basic C++. You don't have to be an expert or even intermediate level just learn the basics of it and be familiar with it. The same goes for assembly. Once you get that writing things like shellcode should be no problem. I'll send you some links for a few books I found very helpful. I own these myself and it helped me tremendously.

Jumping into C++: Alex Allain

Write Great Code: Volume1 Understanding the Machine

Write Great Code: Volume2 Thinking Low-Level, Writing High Level

Reversing: Secrets of Reverse Engineering

Hacking: The Art of Exploitation I used this for an IT Security college course. Professor taught us using this book.

The Shellcoders Handbook This book covers EVERYTHING you need to know about shellcodes and is filled with lots of tips and tricks. I use mostly shells from metasploit to plug in but this goes really deep.

.

If you have a strong foundation of knowledge and know the material from the ground-up you will be very successful in the future.

One more thing, I recently took and passed the course from Offensive Security to get my OSCP (Offensive Security Certified Professional). I learned more from that class than years in school. It was worth every penny spent on it. You get to VPN in their lab and run your tools using Kali Linux against a LOT of machines ranging from Windows to Linux and find real vulnerabilities of all kinds. They have training videos that you follow along with and a PDF that teaches you all the knowledge you need to be a pentester. Going in I only had my CEH from eccouncil and felt no where close to being a pentester. After this course I knew I was ready. At the end you take a 24-long test to pass. No questions or anything just hands on hacking. You have 24 hrs to hack into a number of machines and then another 24 hours to write a real pentest report like you would give a client. You even write your own buffer overflow in the course and they walk you through step by step in a very clear way. The course may seem a bit pricey but I got to say it was really worth it. http://www.offensive-security.com/information-security-certifications/oscp-offensive-security-certified-professional/

u/CodeTamarin · 2 pointsr/computerscience

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

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

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

    ​

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

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

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

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

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

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

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

    FINAL NOTE: Read the soft skills books first.

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

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

> (assume i have programming background in javascript/web front end.)

Um, are you sure you're ready to jump into iOS development?

Unless I'm reading this incorrectly, it doesn't seem like you have any C or OOP (like Java) programming experience. You'll definitely want to be at least comfortable with C-like syntax and message-passing, inheritance and objects, etc.

Actually, I'll have you answer that for yourself. Watch the first lecture in the iOS dev series from Stanford on iTunes. Around minute 11 the professor goes over what concepts you need to understand in order to be able to follow along with the course. If you don't understand all of the concepts listed, then you aren't ready yet.

Also, you've got to have a Mac. Have at least a Mac Mini (which are the cheapest Macs you can get refurb'd / used).

Here's what I would do assuming I am correct about your programming experience:

1. Learn C on the Mac.

It's for beginners, and will go over the basics of C. Objective-C, the programming language for iOS, is a strict superset of C, so they share a lot of syntax.

1.a The C Programming Language (recommended)

This one isn't for beginners, and is a bit stale, but is the de facto book for learning all of the intricacies of C. While it isn't absolutely necessary, the better you understand C (including pointers, memory, etc.), the easier time you'll have with iOS dev. I absolutely recommend going through it in its entirety, though this isn't necessary. It'll also be good to know C in the future if you plan to pursue software development.

2. Programming in Objective-C

This will teach you Objective-C, related OOP, and using XCode 4.

3. Beginning iPhone 4 Development

This will probably rehash some stuff related to Objective-C and XCode, but for the most part is a great introduction to iPhone development.

Use this book in tandem with the Stanford lecture series. Read the first few chapters, watch the first 2 lectures, do the homework exercises as if you were in the course along with the examples from the book, and just go from there. There might be some redundancy, but I think the combination of reading, listening, and doing will really help you understand the material.

If you need short tutorial refreshers at any point, Cocoa Dev Central is a great resource.

From there, you should be able to start making your own apps, and just use Google, StackOverflow, and http://developer.apple.com/ for all of your questions not previously answered or if you get stuck.

As you go through the process of learning all of these new programming concepts, try to develop ideas for what apps you want to develop. As you learn more, try to piece together how you would accomplish certain aspects of the ideas, and if you can, maybe even code the bits (like certain functions) you can.

There are no set milestones.. it's a gradual process of learning and getting better at programming and iOS development. Your goal should be to just create your own working app entirely based of your own ideas and work.

u/magenta_placenta · 1 pointr/web_design

Not tutorials, but I highly recommend the following JavaScript books:

JavaScript The Definitive Guide (6th Edition, Flanagan)

http://www.amazon.com/JavaScript-Definitive-Guide-Activate-Guides/dp/0596805527/ref=sr_1_1?s=books&ie=UTF8&qid=1310948024&sr=1-1

Pro JavaScript Design Patterns (Harmes/Diaz)

http://www.amazon.com/JavaScript-Design-Patterns-Recipes-Problem-Solution/dp/159059908X/ref=sr_1_1?ie=UTF8&s=books&qid=1310948075&sr=1-1

JavaScript Patterns (Stefanov)

http://www.amazon.com/JavaScript-Patterns-Stoyan-Stefanov/dp/0596806752/ref=sr_1_1?s=books&ie=UTF8&qid=1310948115&sr=1-1

Object-Oriented JavaScript (Stefanov)

http://www.amazon.com/Object-Oriented-JavaScript-high-quality-applications-libraries/dp/1847194141/ref=sr_1_1?s=books&ie=UTF8&qid=1310948145&sr=1-1

Most people swing from Douglas Crockford's nuts and recommend JavaScript: The Good Parts (http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/ref=sr_1_1?s=books&ie=UTF8&qid=1310948183&sr=1-1).

I received a free copy while at Yahoo in 2008 and honestly, I didn't find this book that good of a read. I felt it was definitely geared more towards those with formal CS backgrounds. Keep in mind, I definitely need to re-read it (to see if I feel the same way), but I read it a couple times back in '08 and tossed it on the shelf. The books I mentioned above I've read several times as well and can only say buy them. I'm on my 2nd read of Flanagan's book now.

jQuery in Action is a decent book, but the copy I have is for 1.3, I think. I think I have the first edition and it looks like there is a second.

http://www.amazon.com/jQuery-Action-Second-Bear-Bibeault/dp/1935182323/ref=sr_1_1?s=books&ie=UTF8&qid=1310948303&sr=1-1

jQuery Reference Guide 1.4 is also good, but it's for 1.4 and jQuery is at 1.6 now so it's tough for the books to keep up! I think it's pretty much the online/official reference guide as well

http://www.amazon.com/jQuery-Reference-Guide-Jonathan-Chaffer/dp/1849510040/ref=sr_1_2?s=books&ie=UTF8&qid=1310948347&sr=1-2

u/jbacon · 1 pointr/webdev

Well, you could obviously pay someone to create it for you. If Wordpress or other off the shelf CMS software doesn't cut it, then you're likely rolling your own solution.

I would recommend learning. Here's how to do it:

  • Get a good development environment. I love Webstorm for general web work - great code completion, and makes a lot of things easy. For Rails, I would recommend RubyMine. Those guys at JetBrains make some really kickass software, let me tell you.

  • Learn the basics of web development, and the roles of each technology involved. Use HTML to create templates for your pages, use your server-side backend to accept and provide content, use CSS to make it pretty, and JavaScript to make it dynamic.

  • Understand the difference between and limitations of client-side and server-side code, and use each appropriately.

  • Learn the tools. Pick a real technology stack and learn it, whether that be Ruby on Rails, LAMP, whatever you like. Doesn't matter - this is all about learning. Using jQuery will make your JavaScript life much easier, and try out SASS if you're feeling frisky.

  • Don't expect a good-looking, reliable site on your first try - it's going to take a lot of effort.

    GET BOOKS. Books are the best programming resources around, believe it or not:

  • The Pragmatic Programmer - The de facto programming best practices guide.
  • Javascript, the Good Parts - How to JavaScript, by JS guru Douglas Crockford. Not really a beginner book, but a great reference once you get a handle on JS.
  • Ruby on Rails 3 - Learn Rails by Example - This looked like a really nice beginner level intro to general web development and Rails.
u/seanprefect · 2 pointsr/learnjava

Interfaces are often hard to understand, that's more a java thing than an OOP thing. As far as books go this one

https://www.amazon.com/Core-Java-I-Fundamentals-10th/dp/0134177304/ref=la_B000AQ1QDY_1_1?s=books&ie=UTF8&qid=1519328730&sr=1-1

is written by the same guy who wrote the java textbook i learned from (but that was like java 5 so my exact book would be out of date, this is up to date) I haven't read this one but going by how much I like my text book i'd imagine it's pretty good.


Going into interfaces and inheritance I'll attempt to provide a more approachable explanation. So classes can be sub classes of another object. This has 2 important affects.

First the subclass can access the properties and methods of its parent, this is useful for many reasons. You don't have to change every class when you want to make a change to some aspect, it also helps keep any given class from getting too large and complicated.

But the second important affect of being a subclass is that it allows other classes to know what a class can or can not do. So for example lets i have a class called animal, and it has the subclass dog, and I have another class called home which has a method that expects an animal. Since dog is a subclass of animal my home class knows it can treat dog like an animal. which involves casting the dog to animal, basically you're telling the JVM "Until i tell you otherwise treat this dog as just an animal" so after that casting you've got a dog but it's only treated as an animal (until you cast it back to dog) this is called polymorphism.

now the thing about subclassing , in java you can only be the child of one class, (this is a java thing not a general OOP thing, different languages have different approaches and there are pros and cons) but what if you want multiple superclasses ?

This is where we have interfaces. Implementing an interface basically promises the JVM that the methods that exist in the interface exist in the class. This means that you can treat classes that implement the interface the same way because you have a list of what you can do with the class , but you don't really make it a proper child of the class.

u/bestjakeisbest · 2 pointsr/learnprogramming

i would also recommend c++ after java, these two languages are like the basis for all programming jobs out there, though it wont be easy. c++ wont hold your hand like java does, but it is far more efficient, and there is less overhead with c++. If you want a good book for c++ then here is the one i used in my recent associet's in coputer science(cs1 and cs2). and if you have the money my favorite ide is called clion, made by the people that made intellij for java if you know of it, if you dont want to spend money on an ide for c++ code blocks, and code lite are 2 very good free c++ ide(s) i have used all of these ide(s) at one point or another and i stand by all of these ide(s). but i agree with all of the other people a certification isn't going to be important for getting a job, but proof you can actually do these things is far more important. i'm starting on my bachelor's in computer science and i realise that the most important things that will get me a job is the projects i work on in my spare time.

u/WildCardJoker · 5 pointsr/learncsharp

I guess it really depends on the level of knowledge you already have, but I recommend that almost everyone read the C# Yellow Book by Rob Miles.

It's not an incredibly advanced book, but it does give you a good grounding, and teaches not just the syntax, but many concepts that I had previously had trouble understanding as a self-taught coder, such as interfaces and when you might want to use the private set modifiers on properties. And best of all, it's absolutely free to download. Even if you decide that it's not for you, you haven't lost anything!

There's also Eric Lippert's Essential C# which is extremely thorough, but probably not very beginner-friendly. Eric worked on the C# complier/language design teams at Microsoft, so he knows his stuff.

For beginners, maybe O'Reilly's Head First C# would fit the bill. I haven't read this book, however it seems to cover a wide range of topics including Winforms (older XP-style GUI), XAML (Windows 8/10 new hotness) and Windows Phone. The sampler provided on their web site indicates that the book includes lots of screenshots, as well as hands-on labs to create full applications, which I like.

Best of luck!

u/I_make_ur_toe_Curler · 2 pointsr/UCalgary

Computer Science is not about programming so if you worried about programming don't be! When I program I am usually googling most of the times lol. For example when I forget how to initialize an array in Java I will quickly reference the Oracle documentation online here.

This book is REALLY good! I use it all the times as a reference and it explains the concepts really well without all the bullshit that introductory books use such as weird cartoons or sample programs. I remember when I first took the introductory Java course at UofC I did okay but I never got a deep understanding of the language.

So in the Spring/Summer break I read this book and it cleared up a lot of things. Now I use it when ever I need to refresh up on a topic such as Interfaces in Java. Most of the computer science courses you will take in the future will require you to know the basics such as control statements and that's about it actually.

NOTE: I've only probably written at most 1000 lines of Java code during my undergrad in computer science, excluding assembling of course and my side projects.

EDIT:
TIPS:

1). Learn the basics of object orientated programming (use the book mentioned above) and then play around with an API such as the Java Swing API. I learned a lot! I learned how to MVC and structure my code. Its one thing to write code for a school assignment but it's a whole entire other thing if you plan on making a fully functional program. You will also get a good feeling for how GUI code is structured through out most software application.

2). Join the Problem Solving Club. You will get a deeper insight into solving and thinking about certain problems.

3). Have side project! Like make a basic game or a program that can do basic things such as open and edit files BUT with added complexity like implementing an actually user interface using an API such as the swing library in Java.

4). If you learn enough Java consider playing around with Android development. You will learn a lot and in some courses they actually make use of mobile development so you will be one step ahead of everybody else.

Good Luck!

u/sihui_io · 3 pointsr/ruby

There are some SUPER valuable insights in the replies of this thread that took me YEARS of programming to fully understand. So you did yourself a great service asking this question here :)

 

These insights are:

by u/cmd-t
> think in OOP in terms of passing messages from object to object. Every function call is actually sending a message to an object: a request for it to do something.

by u/saturnflyer
> Don't model the real world. Create the world you need.

by u/tom_dalling
> It's a common misconception that classes model real-world things. Classes model data, or behavior, or responsibilities.

 

To answer your question, yes, OOP is hard to master. As a result, there are many books written on the subject. And for a complicated system, even senior developers will have trouble getting the design right on a first try.

 

If you feel lost, it's not because you are not good at this. It's because the subject you are learning does require lots of time and practice.

IMHO, the best way to learn this is by actually working alongside with senior engineers in a real production project. So you can see some existing designs and also bounce ideas with other engineers.

While that might not be possible at the moment, you can

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/legends2k · 1 pointr/C_Programming

Books


K & R is a great book; it's succinct and filled with great patterns and practices; but modern practices you've to learn elsewhere. I'd suggest 21st Century C: C Tips from the New School (2014).

Expert C Programming was published in 1994, so I don't think it's modern; it'd cover C89. It certainly wouldn't cover C99 or C11.

There're a couple of other books released in the last 10 years:

  • Practical C (2016)
  • C in a Nutshell (2015)

    Use the right tool for the right job


    Though some resources seem to recommend not using C in this day and age, I wouldn't say so. C was and still continues to be a simple and great language. If a guideline uses the words "never" or "always" be wary; blanket statements are seldom practical and are mostly untrue. The right way to put it would be, use it if the project warrants C e.g. you need raw performance, high control of memory/resource usage, low-level hardware access, etc.

    Project Suggestions


    I'd recommend some system software as that's what C was originally created for and that's where it shines:

  • File explorer
  • Arbitrary precision calculator
  • Ray tracer
  • Simple image viewer / editor
  • Interpreter / Compiler / VM
  • Graph plotter
  • Media player using a library such as ffmpeg

    Good luck!
u/Thedabit · 18 pointsr/lisp

Some context, I've been living in this house for about 3 years now, my girlfriend and i moved in to take care of the owner of the house. Turns out that he was a big lisp / scheme hacker back in the 80s-90s and had developed a lot of cutting edge tech in his hay day. Anyway, these books have been hiding in his library downstairs...

It was like finding a bunch of hidden magical scrolls of lost knowledge :)

edit: I will compile a list of the books later. I'm out doing 4th of July things.

update: List of books

  • Lisp: Style and Design by Molly M. Miller and Eric Benson
    ISBN: 1-55558-044-0

  • Common Lisp The Language Second Edition by Guy L. Steele
    ISBN: 1-55558-042-4

  • The Little LISPer Trade Edition by Daniel P. Friedman and Matthias Felleisen
    ISBN: 0-262-56038-0

  • Common LISPcraft by Robert Wilensky
    ISBN: 0-393-95544-3

  • Object-Oriented Programming in Common Lisp by Sonya E. Keene
    ISBN: 0-201-17589-4

  • Structure and Interpretation of Computer Programs by Harold Abelson, Gerald Jay Sussman w/Julie Sussman
    ISBN: 0-07-000-422-6

  • ANSI Common Lisp by Paul Graham
    ISBN: 0-13-370875-6

  • Programming Paradigms in LISP by Rajeev Sangal
    ISBN: 0-07-054666-5

  • The Art of the Metaobject Protocol by Gregor Kiczales, Jim des Rivieres, and Daniel G. Bobrow
    ISBN: 0-262-11158-6

  • Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp by Peter Norvig
    ISBN: 1-55860-191-0

  • Practical Common Lisp by Peter Seibel
    ISBN: 1-59059-239-5

  • Common Lisp The Language by Guy L. Steele
    ISBN: 0-932376-41-X

  • Anatomy of Lisp by John Allen
    ISBN: 0-07-001115-X

  • Lisp Objects, and Symbolic Programming by Robert R. Kessler
    ISBN: 0-673-39773-4

  • Performance and Evaluation of Lisp Systems by Richard P. Gabriel
    ISBN: 0-262-07093-6

  • A Programmer's Guide to Common Lisp by Deborah G. Tatar
    ISBN: 0-932376-87-8

  • Understanding CLOS The Common Lisp Object System by Jo A. Lawless and Molly M. Miller
    ISBN: 0-13-717232-X

  • The Common Lisp Companion by Tim D. Koschmann
    ISBN: 0-417-50308-8

  • Symbolic Computing with Lisp and Prolog by Robert A. Mueller and Rex L. Page
    ISBN: 0-471-60771-1

  • Scheme and the Art of Programming by George Springer and Daniel P. Friedman
    ISBN: 0-262-19288-8

  • Programming In Scheme by Michael Eisenberg
    ISBN: 0-262-55017-2

  • The Schematics of Computation by Vincent S. Manis and James J. Little
    ISBN: 0-13-834284-9

  • The Joy of Clojure by Michael Fogus and Chris Houser
    ISBN: 1-935182-64-1

  • Clojure For The Brave and True by Daniel Higginbotham
    ISBN: 978-1-59327-591-4



u/samort7 · 3 pointsr/learnprogramming

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

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

u/zombie_soul_crusher · 1 pointr/learnprogramming

I know it's a bit off-topic, but I bought this book about a year or so ago, maybe a little prematurely. I had dabbled in C# and it seemed like a nice language (I had built a small site and a couple of APIs for use with Angular) so I shelled out on the book.

Shortly after, I got accepted on a local Java course which also consisted of Android app development. I've finished the course now but I'm unsure as to what to do...

C# feels like the nicer language in my experience but I wouldn't particularly want to be stuck in the MS ecosystem. I'm aware of Mono and I've tried it out with MonoDevelop, but Visual Studio seems like an absolutely fantastic IDE so I'm really torn between MS + VS or linux.

I've got a nice environment set up in linux and my focus initially would be on Web APIs, probably with Angular2+ frontend and Android apps. Currently, I'm working on an API and site using Spring and Angular4 (which will eventually have a partner Android app), since Spring was the only real way of working in Java for such things (that I am aware of).

As I gain more and more experience, I would aim to branch out into some more GUI apps in either language but I'm not sure which language to focus on right now.

Any advice for a noob starting out?

  • Which would serve me better in the long run for Web API and potential future GUI development?
  • What is the state of C# in linux and is it a viable option, considering my post?
  • Is it a waste to try and learn both?
u/idboehman · 2 pointsr/devops

I'd make sure I have a really solid understanding of systems and networks, e.g. how Linux works. This book seems like a great overview and I love No Starch Press. There's also this book which is used by Carnegie Mellon's introductory systems course, though that might be a bit too deep to dive into straight away, more like something that could be used if you want a deeper understanding of how systems work. You should have some familiarity with C just as foundational knowledge. The guy who wrote Learn Python The Hard Way also wrote an intro to C, Learn C the Hard Way. He's added a lot more material than the last time I checked (~Dec 2012) which looks like it covers a lot of topics so it would be great to work through it.

Some more technical books on this subject that are well regarded and can be used as reference books are Advanced Programming in the Unix Environment, Unix Network Programming, and The Linux Programming Interface

Also in addition to Python I'd also suggest learning some Ruby (Practical Object-Oriented Design in Ruby and Programming Ruby 1.9 & 2.0 are two resources I'd recommend), it's what Chef is/was implemented in and is fairly nice to work with.

u/Liamdev · 1 pointr/csharp

> I downloaded the solution for the above tutorial and i was surprised by the amount of code needed to make something simple work.

Welcome to the inappropriate pattern usage train.

I am about to get downvoted in to oblivion but you shouldn't be going out of your way to make a pattern fit with your scenario, if its not appropriate to use MVVM for part of your codebase then don't use it. Patterns are shortcuts to good architecture but are not meant to be used without modification nor are they designed to be used when it does not make sense to use them, they don't replace people thinking about a specific scenario. See if you can find a copy of this, they do a really good ob of breaking down how to think about pattern usage in the context of application design rather then trying to make your application design fit a pattern.

How large is your application? What are your NFR's like maintainability? Is your use case so simple that using MVVM in this case would increase the complexity, maintainability and bug frequency in your code?

Can you use a Action to raise the MD to the ViewModel? How about a UserControl/Control instead to abstract?

u/zabi15 · 1 pointr/learnprogramming

try cookbooks https://www.amazon.ca/Concurrency-Cookbook-Asynchronous-Multithreaded-Programming/dp/1449367569/ref=asc_df_1449367569/?tag=googleshopc0c-20&linkCode=df0&hvadid=292950359971&hvpos=1o1&hvnetw=g&hvrand=2094012217590572301&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9000633&hvtargid=pla-330197456780&psc=1

​

​

you can probably find free pdfs or something.

never tried it for c# but i used cookbooks for sql and c++

the way they work is they give you a bit of theory and then give good exercises to do.

i find them really good.

other ways would be to follow a lesson plan on c# and then find lots of exercises online about that chapter.

example:

you just studied the chapter on if statements, had 1 exercise and then it continued to next chapter. what you can do is google for if statements exercise for c#, there are load of em. and if you need more just look for exercises in any language and do them in c#. anything beginner level should be possible to do in most languages.

anyway good luck man c# is fun,

u/Waitwhatwtf · 2 pointsr/learnprogramming

A fair amount of iOS devs I know say that starting with a background in C can definitely help you in the long run, so I'd highly recommend K&R for that.

After you're done with that, you're definitely going to want to learn the Cocoa API along side Objective-C, and Hillegass does that quite nicely. Once you're familiar with that, this book will help you familiarize yourself with the language further.

Bonus round dice roll:

If you want to make a game, I recommend learning some opengl.

u/markdoubleyou · 3 pointsr/csharp

As others have mentioned, writing code is the best way to get exposure. But if you're a book guy like me then there are a lot of option out there that'll accelerate the process. You'd be insane to read all the following--these are just starting points that can accommodate different interests/tastes.

Having said that, I'll start with the one book that I think every C# developer should own:

Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries

... it's a good read, and it includes a lot of direct input from the designers of the C# and the .NET Framework. Microsoft has been really good about sticking to those guidelines, so you'll immediately get a leg up on the Framework libraries if you work through this book. (Also, you'll win a lot of arguments with your coworkers about how APIs should be designed.)

General knowledge books (tons to pick from, but here are some winners):

u/phao · 2 pointsr/java

I've heard good things about these two:

u/RedditWithBoners · 3 pointsr/csharp

I purchased TCP/IP sockets in C a while back, and at the time was working a job doing Linux network development. So, seeing the low-level APIs and diving straight into the work is what I recommend, but I know it's not the most accessible route. Unfortunately, I don't have any other book references as the majority of my understanding is documentation, blogs, and code. Honestly, my knowledge of sockets in Windows is far from complete.

There is a regular poster to /r/csharp who writes a series of articles and code about networking in C#. I believe he started from simply opening a socket, then continued onto TCP, UDP, and eventually creating a networked game. Surprisingly, I came across this when I was trying to find his posts. You might have better luck searching reddit (I only searched Google).

As for async, I purchased Stephen Cleary's book Concurrency in C# Cookbook and Alex Davies' book Async in C# 5.0, but I have barely cracked open either. :( Stephen Cleary's blog has a significant wealth of information on how async/await works, and things to do and avoid. Once you get over a few humps, MSDN's documentation is pretty thorough and readable as well.

Edit:
Found the networking series I mentioned above - https://16bpp.net/tutorials/csharp-networking/, written by /u/def-pri-pub.

u/bbutton · 5 pointsr/programming

I'd focus on identifying where problems are in code, more than trying to fix them. I really believe fixing them is the easy part, with learning how to fix them in really tiny, incremental steps slightly harder. Appreciating what good code looks like and why lesser code can and should be improved.

SOLID is a great set of rules to start with, if you haven't ready incorporated that into your thought process. I'd also recommend a really old book by Kent Beck as a great resource about thinking at the level of coding idioms. It's called Smalltalk Best Practice Patterns (https://www.amazon.com/Smalltalk-Best-Practice-Patterns-Kent/dp/013476904X) and oops, I had no idea it was so expensive! I bought it years ago, and have read it over and over. Kent has a way of talking you through what good code should look like. It's in smalltalk, but his ideas are still great.

u/LinuxStreetFighter · 1 pointr/SoftwareEngineering

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

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

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

Core Java Volume I

Python Programming: An Introduction to Computer Science

Eloquent JavaScript

Head First Ruby


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

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

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

Anyway, back to the other books.

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

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

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

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

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

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

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


    Check out some podcasts too!

    Coding Blocks .NET

    Code Newbie

    Programming Throwdown

    Coder Radio (see below)


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



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

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

u/passthejoe · 1 pointr/computerscience

If your school teaches in Java, you might want to do the http://mooc.fi/english.html. That gets you learning Java and using an IDE (NetBeans), and it's a good way to ease you in. Oracle's documentation is really good, too: https://docs.oracle.com/javase/tutorial/tutorialLearningPaths.html.

If they do C++, that's another story. My community college teaches C++, and I can tell you that the first course was VERY doable for somebody who has a little programming experience -- even very little. I'm at a loss for good online tutorials, but the book my class used -- https://www.amazon.com/Starting-Out-Early-Objects-8th/dp/013336092X -- was very good. I'm considering getting the author's Java book: https://www.amazon.com/Starting-Out-Java-Early-Objects/dp/0133776743/.

The only problem is that "real" textbooks are very expensive. There are some great online resources. One I am using for Java is http://greenteapress.com/wp/think-java. David Eck's free book -- http://math.hws.edu/javanotes/ -- is also very good.

u/martoo · 9 pointsr/programming

Smalltalk Best Practice Patterns by Kent Beck. In my opinion, it's his best book. It's a great book on the nitty gritty of coding.. great for all programmers. It's easy to read even if you're not a Smalltalker; all you have to do is google for a Smalltalk cheatsheet.

I also like Working Effectively with Legacy Code. It's about the sort of code that most of us confront daily: how to deal with its problems, and get it under test so that you can refactor it or add to it without gumming it up.

u/Gankbanger · 1 pointr/learnprogramming

Coding:

  • Code Complete 2. It is language agnostic BTW, most recommendations and guidelines apply to several languages, if not all. I would definitively start by this one if you are a beginner. The lessons from this book will help you for the rest of your career.

    Object Oriented Programming (OOP):

  • Applying UML and Patterns. In my opinion the best book on UML in the market. Excellent illustration of step by step process to getting an idea from concept to code while thinking Object-Oriented. Just keep in mind the book has some embedded propaganda for IBM's Rational Unified Process(RUP). OOP works just as well outside the RUP; i.e.: using agile methodologies.

  • Design Patterns If you are only starting now, save this book for later. It covers more advanced design subjects. Read this one when you are already VERY comfortable with OOP.

    EDIT: People who are downvoting this are doing you a disservice out of ignorance. You must read Code Complete 2.
u/sibilith · 1 pointr/webdev

I recommend you take on some kind of project that interests you and will expand your skills/knowledge. I made a site blocker chrome extension for one of my first projects and it introduced me to chrome’s api. Or you could try making a portfolio site/blog for yourself to get the hang of different design practice. I used a static site generator for mine. The bottom line is to choose something that interests you and is outside your comfort zone.

I recommend perusing The principles of object oriented javascript and Understanding ECMAScript 6 for a good reference for JavaScript practices and for a good understanding of the language. I also like O’Reilly publishers JavaScript Cookbook and Refactoring JavaScript.

u/PianoConcertoNo2 · 2 pointsr/learnprogramming

C++ Primer is good to have, but when I first started, it was way over my head. Same for the Stroustrup books (he's brilliant but not a good teacher..)

​

Jumping Into C++ by Alex Allain is the better book for beginners, I think. He explains things very clearly (especially pointers). I think the Allain book, followed by C++ Primer is a better path for beginners.

u/ThereKanBOnly1 · 7 pointsr/csharp

There's a lot of good answers here, but I'm going to take a more abstract position. I'd argue that the point of async/await is to not have to worry about, or understand all the minute mechanics of, writing asynchronous code.

As many stated, what you might need those asynchronous operations for might be something as straight forward as some disk I/O, a database call, a network call, or maybe even a long running computation of some sort. Without async/await, you're simply waiting for those to finish, rather than being able to switch contexts and do something else.

Maybe you don't need to, and that's fine. Not every application needs async calls, but chances are it can be useful to quite a large number of cases.

Fundamentally, the threading model is simply too complex, full of far too many pitfalls, and far too inaccessible to be widely used and widely effective for the vast majority of .Net programmers. Async/await is a different approach to programming for concurrency that puts the onus on the framework itself, and with a little imposition on the programmer, allows the programming of concurrent operations that would be largely impossible for a lot of us.

That is the advantage. Don't worry about threads, because as Stephen Cleary has said, once you write code with threads, it's already legacy code.

u/duggieawesome · 3 pointsr/ruby

Sounds like you want to grab the Pickaxe book. It's a tome, but it'll take you through the Ruby way of doing things. The Ruby Way is great and easily accessible, but I don't believe it's been updated for Ruby 2.0.

Lastly, you can always skim through the Ruby docs.

Edit: You should also check out POODR. Great way of learning how to refactor!

u/ChrisF79 · 1 pointr/learnprogramming

How much knowledge of Objective C do you already have? If you already have a good working knowledge of it, you should look into the Big Nerd Ranch books (Amazon link). They're pretty awesome because they show you, in steps, how do write simple programs. If you don't already know Objective C, read Kochan's Programming in Objective C as that starts you at ground zero.

Another option is to watch the Stanford University courses on Objective C. I believe there are 3 semesters online (same class, different teachers) and those are pretty great as well.

u/counttossula · 4 pointsr/learnjavascript

you should learn to learn on your own. use your favorite search engine for each thing you want to learn about. my favorite search term is "_____ MDN", fill in the blank with whatever(".map MDN").

or buy a phone book like this one https://www.amazon.com/JavaScript-Definitive-Guide-David-Flanagan/dp/0596000480

edit: good free book https://github.com/getify/You-Dont-Know-JS/blob/master/up%20&%20going/README.md#you-dont-know-js-up--going

thinking chair edit: lol, read the ECMAScript 2016 Specifications here http://www.ecma-international.org/ecma-262/7.0/index.html#

u/ginzer · 1 pointr/javascript

I come from the same background. Lot's of good recommendations here. I read this book: http://www.amazon.com/Principles-Object-Oriented-JavaScript-Nicholas-Zakas/dp/1593275404, watched a video series version of Crockford's "Good Parts", and went through this Udacity course: https://www.udacity.com/course/ud015. Hope that helps. Good luck!

u/Mat2012H · 1 pointr/learnprogramming

People on Reddit will help you for free :P Seriously, the programming community is really helpful on here, everyone wants to help out!

If you are willing to pay money, then buy a book (this is one I got, very good!). The book is cheaper than a tutor.

Coming from that book, I can tell you he gives a bunch of relevant and real world-y like exercises at the end of every chapter, which are really helpful :D

u/dnew · 9 pointsr/google

> how to use google to solve a programming problem

You can't. You have to figure out how to solve the problem yourself. Then you use Google to look up individual pieces of that.

In other words, you have to go "Well, I need to open the file, then read it line by line, find the first opening brace, find the last closing brace, and extract the piece of the string between those two braces, then print that out."

How do I open a file? I can google that.

How do I find the opening brace? I can google that.

How do I chop out the middle of a string into a new string? I can google that.

See what I mean?

> CS textbooks in general just aren't as well written

Not any more. People just generally don't give a shit, I've found. I've learned numerous programming languages by reading the manual for the compiler in older times. Nowadays, you're lucky if there's even a formal spec of the syntax of the language, let alone a complete readable manual. The "Ruby on Rails" text that seems to be the authoritative text is full of stuff like "this routine seems to do ...." meaning the guy writing it doesn't actually know, and didn't bother to read the source code to figure it out for sure.

However, the good news is that the classic books full of the knowledge that does not become outdated are actually very well written. Start with some of Knuth's texts (https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming), Date's book on SQL and relational models (http://www.amazon.com/Introduction-Database-Systems-8th/dp/0321197844), Bertrand Meyer on OOP (http://www.amazon.com/Object-Oriented-Software-Construction-Book-CD-ROM/dp/0136291554) and so on. (That last is even available as a PDF floating around.)

> some of the knowledge you gain could become potentially outdated in the future

Everything that you could look up on Google will be outdated in about five years. The stuff about how computers work, how to solve problems, etc never gets outdated.

On the other hand, it's one of the few jobs where you can take a job to do X and start working on it without any idea of how to do X. I've been programming almost 40 years and I've never taken a job that I knew how to do when I took the job.

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/NovaDreamSequence · 2 pointsr/dotnet

As a personal choice I'd recommend Essential C# 6.0. I purchased this a month or so ago and since then I've found it to be an excellent resource. The examples are clearly explained and references are also made to previous iterations of C# where applicable. I've certainly found it to be a great learning tool.

https://www.amazon.co.uk/Essential-6-0-Addison-Wesley-Microsoft-Technology/dp/0134141040

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/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/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/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/bobishardcore · 1 pointr/learnjavascript

The fact that it doesn't mention FF or Chrome does make it kind of dated and I'm not sure who wrote it, but I'm sure there are far better resources.

You'd probably be fine to just read everything Douglas Crockford and watch all of his videos. Check out:

  1. "JavaScript: The Good Parts (Douglas Crockford)
  2. Someone else already posted a link to "Eloquent Javascript" (Marijn Haverbeke)
  3. and JavaScript: The Definitive Guide as well. (David Flanagan)

    I've found that the For Dummies book series pretty much suck (as far as programming books go anyway, don't know about the rest). They seem to have a weird model for writing informative books, but that's just my opinion.
u/Nezteb · 11 pointsr/C_Programming

Some physical book recommendations:

u/smallfishbigpond · 2 pointsr/lisp

On Linux I recommend grabbing the latest SBCL. If you really need to stay on Windows, then CLISP is fine.

You can edit code in any text editor, so simply choose your favorite one on any platform. You will find most of the main CL nerds use emacs and SLIME as their "IDE".

As for books, there are no good books on Lisp. I'm serious, every last one of them sucks ass out loud. But here is a list, taken in order from beginner level (that's you) to CHICK MAGNET (that's me).

u/readitmeow · 3 pointsr/ruby

I started learning ruby 3 months ago. I started with "Learn Ruby The Hard Way" that really holds your hand so that should help you with how to get started. Then I read the first 9 chapters of pickaxe. Then I did enough easy, medium and a few expert problems on codeeval.com to hit top 95% for ruby. Now I'm going through a few rails tutorials. Good luck.

u/corysama · 1 pointr/learnprogramming

If you did that, it would create a second member variable in your derived class that gets in the way of finding the same-named variable in the base class. Your derived class would have 2 separate ints named "movement". https://godbolt.org/g/ZEeV63 In that example, Bar and Baz are pretty much equivalent.

I always recommend the old book Inside the C++ Object Model to new C++ programmers. It clears up a lot of the under-the-hood stuff that most people treat like superstitious magic.

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

The correct placement style of curly brackets is whichever one is already in place, or whichever one you can stick to. The two main contenders are the K&R style (brackets start on the same line as as the declaration, but end on their own line), and the Allman style (brackets always start and end on their own lines).

As far as actual code structuring, I would recommend breaking your code into the smallest possible pieces as methods to enable code re-usability, portability, and general ease of understanding for anyone that has to read it. My basic rule of thumb is no more than 10 lines per method if I can avoid it, any more than that and either you haven't broken it down enough, or you can probably refactor your code to simplify it.

A book that I saw recommended and am reading through at the moment is Smalltalk Best Pattern Practices which goes over this quite thoroughly but uses only the Smalltalk language for examples, so that may or may not confuse matters.

u/jaybill · 3 pointsr/C_Programming

Ah, yes. You can't spell "krusty" without K and R. Here's my copy (same edition) with some other essentials from that time period.

https://i.imgur.com/xhRuwAi.jpg

It's one of less than 15 books I keep on the shelf over my desk instead of in the library. (For anyone wondering about this strange collection, I write DOS games in addition to my day job.)

Some say it's the only C book you'll ever need. I do recommend that if you're new to C that you read it cover to cover, even it not all of it makes total sense. It will start to gel when you're coding, then you can refer back to it.

Once you've read it, though, I suggest you immediately read 21st Century C by Ben Klemens. I wish I had done that initially, it could have saved me a lot of pain. Klemens goes into a lot of detail about the things you do and do not need to care about when writing C now, rather than when the K&R was written. And beyond the bare information, it's actually a pretty entertaining read.

Keep both books near you when you code, they're invaluable.

u/mahalo1984 · 3 pointsr/learnmath

If you have truly finished single variable calculus (including infinite series and polar coordinates), the direction you head from this point depends on the direction you wish to go. I see three paths from here:

You can go up.

You can go down.

Or you can go sideways.
.

.

.

By up, I mean, more complicated calculus and other math techniques that would help you if your end goal is to eventually do physics or engineering. The courses to take next would be:

a. Multivariable calculus

b. Linear Algebra

c. Differential Equations

d. Probability and Statistics (with Calculus, so that you actually understand what you're doing)


the above can be taken in any order
.

.

.


By down, I mean, you can investigate the fundamentals. If you are interested in becoming a math teacher or a math professor or just a math theory person in general, this is the way to go.

a. Discrete Math (you may have done this already, not sure)

b. Basic Proof Writing

c. Number Theory

d. Abstract Algebra

e. Computability Theory


These are listed from entry to more advanced, though they don't necessarily build off each other. Realize that a lot of this, while interesting won't necessarily have direct applications if you really want to get into some particular applied field.
.

.

.

.

By sideways, I mean something applied. Learn how to solve new problems with the math you already know:

a. Physics

b. Data Analysis or Inferential Statistics (helpful to have Prob and Stat first)

c. Modeling and Simulation (helpful to have Prob and Stat)

d. Numerical Analysis

e. Information Theory (helpful to have Prob and Stat)

f. Computer Programming


*Note that it might be helpful to learn more about the other subjects before getting too heavy into any of these save computer programming.
.

.

.

.

Here are some nice books in no particular order:

http://product.half.ebay.com/Linear-Algebra-by-Ray-Kunze-and-Kenneth-Hoffman-1999-Hardcover-Revised/50499&tg=info (Linear Algebra)


http://product.half.ebay.com/_W0QQprZ57268950 (A well-written approach to Multi-variable calculus that makes you think to learn)


http://product.half.ebay.com/_W0QQprZ43118664 (The text book on Computability)


http://product.half.ebay.com/Discrete-Mathematics-by-Charles-R-Wright-and-Kenneth-A-Ross-2002-Paperback-Revised/2379179&tg=info (a more readable treatment of Discrete Math)


http://product.half.ebay.com/_W0QQprZ77981207 (a less readable treatment of discrete math but uncommonly thorough and rigorous, don't do this one alone though, you need a helper of some kind)


http://product.half.ebay.com/John-E-Freunds-Mathematical-Statistics-with-Applications-by-John-E-Freund-Irwin-Miller-and-Marylees-Miller-2012-Paperback/124286253&tg=info (sometimes obtuse, but generally very sound treatment of probability)

.

.

.

Some of the beaten path stuff:

http://product.half.ebay.com/_W0QQprZ290535 (a fun read that makes you think)


http://product.half.ebay.com/_W0QQprZ109083098 (to help with reasoning and understanding what formal systems are, perhaps get this new as it comes with a one use cd that gives you lots of interactive exercises)

.

.

.

Programming:

http://www.amazon.com/Introduction-Java-Programming-Comprehensive-Edition/dp/0132130807/ref=sr_1_2?ie=UTF8&qid=1373519082&sr=8-2&keywords=java+liang (Java Programming)


http://www.amazon.com/Starting-Out-Early-Objects-8th/dp/013336092X/ref=sr_1_1?s=books&ie=UTF8&qid=1373519198&sr=1-1&keywords=addison+wesley+starting+out+with+c%2B%2B (C++)
.

.

.


Unfortunately, I'm not qualified to recommend any other books.

u/lampyridae · 1 pointr/javascript

I'd suggest to work on analyzing and designing before coding.

Analysis is about breaking down the problem (the use cases the software needs to fill).

Design is about building a solution out of components, assigning responsibilities to those components and identifying their relationships.

My rule of thumb is: if what I'm about to code is complex enough that I have no idea how I'll piece it together, I'm not ready to code yet.

A whiteboard or a sketch pad and basic diagram drawing skills are really useful. The point isn't to draw a blue print, it's to sketch out ideas about how to articulate your components and to gain insight on the hard parts through visualization.

The challenge is structural (how many classes? whose method is this? composition or inheritance?) and dynamic (A calls C, which calls B, which asynchronously calls X… is this optimal?).

I've really enjoyed Larman's book on Object-Oriented Analysis and Design. The title sounds much more narrow than the actual subject matter.

u/tmuntan1 · 5 pointsr/learnprogramming

RoR will be very useful to create a website like that, just use the devise gem for the user logins. The databases are easy on rails, just follow a few tutorials and you will get started in no time. I would also recommend to use the screencast Railscast and the books Pragmatic Agile Web Development with Rails and Ruby on Rails 3 Tutorial as they helped me get started.

u/blaaaaaa1111 · 1 pointr/programming

You might be interested in Inside the C++ Object Model (I'm only halfway through chapter 2), it will make C look very elegant and beautiful in comparison.

u/timurcat99 · 1 pointr/angularjs

Hmm,
I read this book 3 times already and it helped me landing a decent job recently. You will love it.

https://www.amazon.com/Principles-Object-Oriented-JavaScript-Nicholas-Zakas/dp/1593275404

I am also subscribed to frontendmasters.com. Not as good though. Please share your links also.

Thanks

u/mhd · 8 pointsr/programming

Friedman & Felleisen Little Schemer seems noteworthy. Unorthodox, but nicely done.

And while I think that Meyer's technical writing isn't exactly the best, Object-Oriented Software Construction has a nice visual layout and is one of the few computer books that uses color effectively.

u/thedracle · 2 pointsr/SaltLakeCity

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

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

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

u/OmegaNaughtEquals1 · 1 pointr/cpp_questions

As several others here have noted, the answer to your question is placement new. If you are deeply interested in the underbelly of C++ objects, I highly recommend picking up a copy of Lippman's Inside the C++ Object Model. It's a very good read even though it's ~20 years old (the fundamental object model hasn't changed terribly much since then).

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/CarlZeiss · 2 pointsr/learnprogramming

I'm not aware of many free resources to learn Objective-C other than Apple's reference to Objective-C.

If you are new to programming I would highly recommend you check out Programming in Objective-C by Stephen Kochan. Another good introduction is Beginning Mac Programming by Tim Isted.



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/vsalikhov · 2 pointsr/ruby

First, a superficial note: the Ruby way is to indent 2 spaces, not 4. This is the first thing that sticks out about your code as "strange" ruby.

Second, name the method by the thing that it returns. So, instead of the procedural create_array, the method name would be thingies_array since it returns an array of "thingies". Or, better yet, the method name should just be thingies, as the plural already signals that the method returns a list. Recommended reading is Smalltalk Best Practice Patterns. But first read this to get some context of how the ideas in this book apply to Ruby.

Third, get to know the methods provided by the Enumerable module and the Array class well. You will find that idiomatic Ruby leans heavily on the Enumerable methods.

Finally, here is my take on your example in what I feel is more idiomatic Ruby (remember, in the end, this is all subjective, there is no one right way):

def thingies_from_json(json)
json['thingies'].map do |t|
thingy = Thingy.new
thingy.id = t['id']
thingy.desc = t['desc']

........ code ......

    thingy<br />
  end<br />
end<br />
u/ssps1138 · 1 pointr/csharp

I recommend this one. Great for all levels. Well written IMO.

u/RankFoundry · 2 pointsr/javascript

If you check out the first chapter on Amazon, the author says that's exactly why and who he wrote it for. He explains how to get the same OO features you're used to out of JS but also how to utilize the unique aspects of JS: http://www.amazon.com/Principles-Object-Oriented-JavaScript-Nicholas-Zakas/dp/1593275404

Hope it helps. It helped me out quite a bit as I transitioned towards more front-end work

u/kryptiskt · 2 pointsr/programming

&gt; If the author truly cares about advancing software engineering, I'd ask what he's doing to advance software engineering (apart, of course, from proposing laws and writing about it on his blog)?

Bertrand Meyer has done a fair bit to do that, Eiffel and Object-oriented Software Construction sticks out.

u/cbm1745 · 2 pointsr/computerscience

This is what I used to teach myself C++ last summer and it was a great resource for me. (Found it for free on genesis library btw).

u/gregK · 19 pointsr/programming

It's one of the best OO languages, with one of the best books to go along with it OOSC. But it was never mainstream. And a purely OO language is becoming a thing of the past.

All the current new languages are more or less hybrids between OO and FP, for example: Scala and F#. Even C# which is touted as an OO language has a lot of FP features that were not available in Eiffel.

It is probably not a bad language for teaching OO, probably better than Java and C++ especially when used with the book mentioned above. But it's not my favorite language. Haskell is, but it's not OO so I'm not sure if it counts. (Not a big fan of OO either anymore) .

u/TheMartyr5 · 1 pointr/learnprogramming

Then learn c++ as it's the most commonly used language in the industry. Also learn how game engines and games work though. Go on amazon pick up a few books on game development, then try using a few game engines like unity3d and unreal engine. create stupid basic games just so you have a feel of how the engine works, then Get the book Game Engine Architectures 2nd edition by Jason Gregory, it gives the ultimate description on how engines work at the low level and high level. Give your self a few months to a few years to fully understand games, game engines, programming and everything I just said as it takes a while to master these subjects. I started learning c++ two years ago and now I'm starting to write my first real software ( A 3D Rendering Engine). But if you stay focused and it's interesting to you time won't matter. These are my steps:

  1. Take a few months to learn C++, these are some good books (in the order they should be read) http://www.amazon.com/Jumping-into-C-Alex-Allain/dp/0988927802/ref=sr_1_2?ie=UTF8&amp;amp;qid=1420731768&amp;amp;sr=8-2&amp;amp;keywords=c%2B%2B and http://www.amazon.com/C-Programming-Language-4th/dp/0321563840/ref=sr_1_1?ie=UTF8&amp;amp;qid=1420731824&amp;amp;sr=8-1&amp;amp;keywords=c%2B%2B

  2. Learn how 2d games and engines work (plenty of source online)
  3. Learn how 3d game engines work (unity3d, unreal engine)
u/ziptofaf · 1 pointr/learnprogramming

Absolutely any book on Java would work, there are whole chapters dedicated to classes and objects, often even at similar examples to your questions. This one is considered pretty good. It even shows as to make an Employee class specifically.

You are basically asking about the very basics of Java, rather than looking for "youtube videos" just look for a comprehensive guide through that language for beginners, be it on paper or digital.

u/YuleTideCamel · 0 pointsr/learnprogramming

&gt; http://www.amazon.com/Design-Patterns-Object-Oriented-Professional-Computing/dp/0201634988

I would start with the head first book, it's easier to digest. Plus it doesn't matter that its java. After that I would like at the Gang of Four book (google it). The GoF book is REALLY good, but it's a hard book, very dense. Head First Design patterns is easier and more accessible.

u/PM_ME_YOUR_MAKEFILE · 3 pointsr/learnprogramming

I've also been learning C# for work, and I don't do well in classes: I learn better from books. So if books are your thing, here's a couple recommendations (all of these are on Safari Books Online, see if your work will shell out for a subscription)

u/brandonweiss · 2 pointsr/ruby

I realize this is something you probably don't want to hear, but you've got a way larger problem than the problem you posted about. If you're unable to figure out why you're getting an undefined method error from a really simple bit of Ruby code, then the actual problem is that you don't understand Ruby well enough yet. You should stop using Rails and first learn how to use Ruby properly. There are some excellent Ruby-only books, like the pickaxe book. And there are some great online courses as well. Once you can write non-Rails Ruby programs with ease, then you can start using Rails, and you'll find it'll be a thousand times easier.

u/MPIS · 1 pointr/compsci

Some great text resources on the subject:

u/pier25 · 2 pointsr/godot

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

u/8524561793 · 1 pointr/learnprogramming

Thank you. For the design patterns book, do you recommend that I get something which focuses on Java, or should I get something more generic like http://www.amazon.com/Design-Patterns-Object-Oriented-Professional-Computing/dp/0201634988?

u/beeb2010 · 1 pointr/learnprogramming

I cannot comment on the Sam's book as I haven't read it - however, I thought I would recommend 'Jumping into C++'. It's a great book - I don't know where you live so I'll post the amazon.com link http://www.amazon.com/Jumping-into-C-Alex-Allain/dp/0988927802

u/KryptosFR · 6 pointsr/csharp

You beat me to it :)

Another recommendation is Concurrency in C# Cookbook by Stephen Cleary. It is easy to read, even on a trip. But you might want to do that at the end of said trip because it will make you want to experiment it yourself.

u/b_poore · 1 pointr/OSUOnlineCS

It's been a while since I've taken 161, but when I did, this was the book: https://www.amazon.com/Starting-Out-Early-Objects-8th/dp/013336092X

Back then 161 and 165 were using the same book. We made it through most of the book in 161 and 162 and my understanding is that 165 is the same story, just twice as fast, so looking at the book might help you decide as well!

u/death · 4 pointsr/lisp

The Keene book advises to write such "constructor" functions, and at that time this conservative advice made sense. If you want to expose a traditional looking interface, that hides the fact that you're using CLOS internally, then it's a good idea to define a make-foo function.

Nowadays, CLOS is widely supported and accepted. Therefore, you may want to expose the fact that you're using it to the user, which in turn may want to do things like subclass or define new methods. Then, it's better to just expose the class's name and let the user instantiate objects using make-instance.

Of course, in certain cases you may want to provide convenience syntax to create instances, but that is another matter.

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/TheRealQwade · 3 pointsr/JobFair

Yea, it actually worked out really well. As far as books, the only ones I have real experience with are the O'Reilly "animal" books (hopefully you know which ones I'm talking about), especially the "cookbooks." The downside about using Google as my teacher is it meant my programming fundamentals were not very good when I started. I do have an Object-Oriented JavaScript book that did an amazing job teaching me how to do my job better.

u/ancientneckbeard · 2 pointsr/C_Programming

You might want to read 21st Century C in addition to the book you have, but honestly any book published after 1990 is probably fine.

u/zach_will · 0 pointsr/javascript

MDN Doc Center (or MDC) is indispensable.

If you're looking for a solid book to learn it quick, Stoyan's Object-Oriented JavaScript or Nicholas Zakas' Professional JavaScript are the easiest to read and hit the ground running (as opposed to Crockford's book).

I actually learned quite a bit from Crockford's older talks on YUI Theater — scroll around halfway down the page for his Advanced Javascript and The Javascript Programming Language talks.

Also, word of advice, JavaScript itself is really easy to pick up — especially if you've programmed before. The thing that is going to cause you the most trouble is interacting with the DOM (and browser quirks, etc). There are multiple libraries to help you out, and, while everyone has their own preference of which to learn, jQuery is probably your best bet. I'm not saying it's better than the others, but you will need to know it if you apply to front-end developer jobs.

Lastly, if you are willing to pay money, I really feel you can't go wrong with Stoyan's book.

u/wleahcim · 2 pointsr/programming

&gt; The basic point of this was to gear your mind to think in terms of objects, methods, and the interactions between them.

Well, it depends on the problem domain. Sometimes, it's a good start to write down the nouns and verbs of your spec, and relate them to each other. That does not necessary lead to an OO design, especially if you concentrate on the verbs.

&gt; how can us OO-thinkers learn how to "structure the solution differently"?

I can only recommend to go by example and look at existing designs. CLOS will show you a more "functional" OO style, and you'll loose some misconceptions from other OO languages. Keene's book is a good introduction. Otherwise look at papers from the FP community.

u/kare_kano · 0 pointsr/ProgrammerHumor

Good luck with that, omitting semicolons can lead to cases a lot more nasty than that. It's a very bad habit. You really should do yourself a favor and read a damn book about JS basics, they have actual sections dedicated to this stuff. O'Reilly's "JavaScript the Definitive Guide" by David Flanagan is excellent and can be literally bought for pennies (although at that price you might as well pick up a PDF somewhere, I don't understand how anybody's making any money off it.)

u/EpistemicFaithCrisis · 1 pointr/programming

That really depends on the way exceptions are implemented by a specific compiler. If you're interested in different ways of implementing exceptions, you might want to grab Inside the C++ Object Model which has a good discussion of exception implementation.

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/suhcoR · 3 pointsr/ProgrammingLanguages

Yes. Here are some papers about it if you're interested: https://web.archive.org/web/20050510122857/http://www.iis.sinica.edu.tw/~trc/languages.html They refer to earlier work which again refers to Lisp and a precursor of CLOS.

The Art of the Meta Object Protocol describes the MOP. If you're looking for a general book about CLOS then you could e.g. have a look at https://www.amazon.com/Object-Oriented-Programming-COMMON-LISP-Programmers/dp/0201175894.

u/AjaxSolutions · 1 pointr/javascript

To learn JavaScript I'd recommend "The Principles of Object-Oriented JavaScript".

https://www.amazon.com/Principles-Object-Oriented-JavaScript-Nicholas-Zakas/dp/1593275404/ref=la_B001IGUTOC_1_2?s=books&amp;amp;ie=UTF8&amp;amp;qid=1497101229&amp;amp;sr=1-2

Zakas is a good writer and he knows JavaScript.

u/hem10ck · 4 pointsr/java

The Core Java books are a great resource.

u/Liam2349 · 2 pointsr/csharp

The event handler is synchronous. The main thread cannot process both the event handler and the UI at the same time. This means the method is processed, and once that is finished, the main thread can resume processing the UI.

To solve your problem, you need to make the event handler "async void" and "await" Task.Delay, rather than ".Wait()"-ing it. When you "await", you will free up the thread to process other things, which in this case is the UI.

You don't have this problem with your other method because it's not running on the main thread. Since you "Task.Run()"-ed the method, it's running on the thread pool, and you are delegating units of work back to the main thread.

It seems like you're new to ideas of parallel and asynchronous processing, so I recommend you read some of Stephen Cleary's book: https://www.amazon.co.uk/Concurrency-C-Cookbook-Stephen-Cleary/dp/1449367569/ref=sr_1_1?ie=UTF8&amp;amp;qid=1523129261&amp;amp;sr=8-1&amp;amp;keywords=stephen+cleary

u/Gabisonfire · 1 pointr/learnprogramming

Alright, much thanks for the advice. How about this one: Jumping into C++

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/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/timlee126 · 3 pointsr/ProgrammingLanguages

Thanks.

Are MOP and CLOS the same thing?

Now there are three books mentioned

u/Gp5Aloy · -3 pointsr/learnprogramming

i've been using early objects with C++ for my last 4 c++ classes the books really good
http://www.amazon.com/Starting-Out-Early-Objects-Edition/dp/013336092X

u/simonsays · 1 pointr/java

its actually in the http://www.amazon.com/Applying-UML-Patterns-Introduction-Object-Oriented/dp/0131489062 which is used in many educational institutions. still see it used on my friends education and he just started in january. i had it back in 2005 or so

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/qwertylurker · 1 pointr/learnprogramming

Object-Oriented JavaScript is my personal favorite for basic JavaScript (i.e. traditional, non-jQuery js).

u/Clivens_0x7cc · 2 pointsr/csharp

Also Essential C# by Eric Lippert and Mark Michaelis, incredibly smart people. Jon Skeet (C# in Depth) and Eric Lippert both have blogs you should follow and read everything they write. http://smile.amazon.com/Essential-Edition-Addison-Wesley-Microsoft-Technology/dp/0134141040?sa-no-redirect=1

u/vertr · 0 pointsr/startups

I would suggest learning HTML, Javascript, and Ruby/Rails.
The Rails Tutorial is a good starting point: http://ruby.railstutorial.org/

The author also has a physical book of the same name: http://www.amazon.com/Ruby-Rails-Tutorial-Addison-Wesley-Professional/dp/0321743121/ref=sr_1_sc_1?ie=UTF8&amp;amp;qid=1319920730&amp;amp;sr=8-1-spell

It teaches you how to build a rails app 'the right way'. While teaching you git, using github, and heroku deployment along the way.

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/Mastersord · 2 pointsr/learnprogramming

I'm reading Essential C# 6.0 now. If you have this book or can find it, chapter 18 covers multithreading. I included an amazon link.

The library you want to use is called System.threading.tasks. Put that into google if you prefer to learn by example/code.

https://www.amazon.com/Essential-6-0-Addison-Wesley-Microsoft-Technology/dp/0134141040

u/GreyDeck · 6 pointsr/java

I liked "Core Java", but it is not as concise as Kernighan/Ritchie.

u/lingual_panda · 4 pointsr/cscareerquestions

Formatted version: (with a few edits)

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

&gt;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).

&gt;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.

&gt;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.)

&gt;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.

&gt;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.

&gt;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?

&gt;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.

&gt;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/MattTheGr8 · 2 pointsr/apple

My stock suggestions:

  1. the Big Nerd Ranch book on iPhone/iOS programming (called iPhone in the 1st edition, iOS in the second... here's a link to the second edition: http://amzn.com/0321773772).

  2. the Developing Apps for iOS class on iTunes U (http://is.gd/CPqCvY)

  3. if you have never programmed in a C-like language before, I have heard that "Programming in Objective-C" is a good book, though I haven't read it myself (http://amzn.com/0321711394)
u/anundergroundnote · 2 pointsr/cscareerquestions

Just a heads up: they are planning on changing the text for the 161/162 sequence (Intro to CS I &amp; II). They're moving away from Absolute C++ and towards Gaddis' "Starting out with C++: Early Objects". I don't know which term they are making the switch, but it's coming.

The main reason is that the Gaddis is easier for absolute beginners (which there are a lot of in the Intro class) than the Savitch. I like both for different reasons: I found the Gaddis to explain concepts in a much more beginner-friendly way as opposed to the Savitch which assumes you have a programming background (he even mentions this in the introduction). Conversely, the Savitch had a bit more depth on technical concepts and the how's and why's things are the way they are.


If you're currently working through Savitch's "Absolute C++" I would keep at it until classes start. You'll be ahead and have no trouble with the first term. Heck, you'll cover most of the class subjects by chapter 11-ish.

u/Scavenger53 · 1 pointr/learnprogramming

I think this is the book they use for software engineering planning https://www.amazon.com/Applying-UML-Patterns-Introduction-Object-Oriented/dp/0131489062

I'm also still learning but it talks about iterative design of OOP and UML to layout the designs. I wonder what other books there are for this, but his question is similar to mine. OP may be a little further in learning than I am since I'm still working through data structures and algorithms of my C++ book.

u/paulfdietz · 1 pointr/lisp

This cover is more greenish, but has some dark blue to it.

https://www.amazon.com/Object-Oriented-Programming-COMMON-LISP-Programmers/dp/0201175894

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/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/fluicpana · 4 pointsr/italy

Per testare le acque velocemente puoi usare https://rubymonk.com/ (introduce Ruby in modo basico). Anche Coursera, Khan, Udacity e simili hanno corsi introduttivi sulla programmazione.

Mentre se vuoi imparare a programmare, il percorso deve toccare almeno tutte queste tappe, in ordine:

  1. [Computer Organization and Design](http://www.amazon.com/Computer-
    Organization-Design-Fourth-Edition/dp/0123744938)

  2. The Structure and Interpretation of Computer Programs

  3. Un buon libro di Assembly

  4. The C programming language

  5. Compillers

  6. Code complete, The practice of programming

  7. Fai finta di aver letto tutto The art of computer programming

  8. Un linguaggio a oggetti, magari Programming Ruby

  9. O/E Python, Dive into Python

  10. Design patterns

  11. Impara un linguaggio funzionale.


    Da qui puoi partire e specializzarti in quello che ti interessa

u/piglet24 · 0 pointsr/csharp

Always use tasks. In Stephen Cleary's book he even writes "As soon as you type new Thread(), it’s over; your project already has legacy code."

u/Myhorta · 2 pointsr/portugal

Eu prefiro um bom livro. Prefiro ter uma boa introdução de conceitos, complementada por exercícios. Se estivesse agora a começar a aprender começava por pyhton ou Ruby.

Para Ruby recomendo Programming Ruby 1.9 &amp; 2.0: The Pragmatic Programmers' Guide (The Facets of Ruby).

Para Python nunca li nenhum, pelo que não sou o melhor para recomendar, mas uma pesquisa rápida revelou este: Python Programming for the Absolute Beginner, 3rd Edition que parece ser bem fixe.

Outra opção que acho bastante boa, é fazer um curso no Coursera, ou parecidos. Podes pegar num curso já concluído e avançar à velocidade que quiseres.

u/CheapShotBot · 2 pointsr/cpp

Want to learn to code? Want to learn C++? Struggling to follow your lecturer or books and tutorials written for experts?

Jumping into C++

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/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/mlester · 1 pointr/programming