(Part 2) Best microsoft programming books according to redditors

Jump to the top 20

We found 763 Reddit comments discussing the best microsoft programming books. We ranked the 152 resulting products by number of redditors who mentioned them. Here are the products ranked 21-40. You can also go back to the previous section.

Next page

Subcategories:

Microsoft SQL server books
C & C++ programming books
Microsoft VBA books
Microsoft NET books

Top Reddit comments about Microsoft Programming:

u/Leandros99 · 22 pointsr/programming

Once done reading both K&R C and Deep C Secrets (definitely two of my favorite books), go through the C Puzzle Book. An excellent way to test your knowledge.

u/chris-gore · 18 pointsr/programming

I am actually going to try to be helpful, in stark contrast to the rest of the comments. You actually want to learn two things C++ and the C++ STL, because the STL is the way to actually get work done with C++ these days.

The vast majority of my college classes were in C++, so I have read several computer science textbooks aimed at C++. The least bad of all the ones I have personally used was Understanding Program Design and Data Structures with C++ by Lambert and Naps. It is the textbook that My Introduction to Computer Science I class used back in the day. It is a serviceable into to computer science book; if you new to computer science it isn't too bad, if you are familiar with comp sci then the book should all be trivial but a good way to learn the language. It is kind of old but the basics of computer science haven't really changed since the 1970's anyway so it doesn't matter [Amazon link]. Lambert and Naps seems to have a newer C++ book out, I don't know anything about it; if it is a newer edition or a different approach or what [Amazon link]. The nice thing about the older one is I can vouch that it is okay, and you can get it really cheap used through Amazon.

Bjarne Stroustroup is the original creator of C++. His book, The C++ Programming Language, is a very good and very thorough overview of the language. Be warned though, it reads like a dense college textbook, mostly because it is a dense college textbook [Amazon link].

The other really essential one is The C++ Standard Template Library by Plauger. Stepanov, et al.; Stepanov is the creator of the STL [Amazon link].

My favorite STL book is actually The C++ Standard Template Library: A Tutorial and Referenceby Josuttis. It is a lot more readable [Amazon link].

Remember, the STL is there to be used, and it hasn't sucked since the late 90's, so don't go around making your own string classes and stack classes, except when you are playing around to learn C++.

Also the Boost libraries are really good now too, but it didn't really exist when I was doing C++, so I don't have any idea what is a good book for that.

Good luck! I just gave you about a year's worth of reading material, but at the end you will be a well-qualified C++ newbie.

u/evetsleep · 13 pointsr/PowerShell

If you're fairly new, I think you should start something like Learn Windows PowerShell in a Month of Lunches. You'll find this recommendation everywhere and for good reason. I personally was an peer reviewer of the 3rd edition and read it page-for-page slowly and provided a lot of feedback. It's a good book to get started with.

After that then move into the advanced tool making books like Learn PowerShell Toolmaking in a Month of Lunches.

Of course this just help get you started. You'll need to get a lot of practice with realistic projects to become familiar with how to build tools. I would highly recommend becoming very familiar with Git. There are a TON of tutorials out there (both web pages and YouTube videos).

Honestly to become a good toolmaker you'll need a lot of practice, but in terms of material these are a good source to get you started. Be patient and try to find small projects that you can grab onto. I would also recommend Windows PowerShell in Action for a more under-the-hood kind of view of how things work.

u/Nezteb · 11 pointsr/C_Programming

Some physical book recommendations:

u/null_vector · 11 pointsr/programming

Actually a more up to date book is C++ Template Metaprogramming by David Abrahams of Boost fame and Aleksey Gurtovoy. It uses the MPL extensively which implements quit a bit of the article if not all. It also describes FC++, Blitz++ and a few others. It implements a basic expression template system and even has an appendix on the Boost Preprocessor library.

I don't recommend starting out with that one though.

Also a good book, is C++ Templates . It's a little bit easier to start off with.

u/pfultz2 · 10 pointsr/programming

It does take a little understanding for boost code. I remember looking at it many years ago when I was student and not understanding it at all. But some things that really helped me was dave abrahams C++ template metaprogramming book, and More C++ Idioms wiki page. I understand boost code a lot better(except the compiler workarounds they have for esoteric compilers). Its actually rather simple a lot of it. Its just different.

u/[deleted] · 8 pointsr/programming

Exceptional C++ and More Exceptional C++ are must-reads, IMHO.

u/SADISTICBLUE · 7 pointsr/Malware

+1 for mentioning malwareunicorns Reverse Engineering Malware 101 course. I'm pretty excited about starting that after I'm done with some Powershell stuff.

Books for: /u/Kreator333 and /u/curiousdoggo

C/C++:

  • The C Programming Language (2nd Edition) - K&R is fine for fundementals.

  • Pointers on C the sections on pointers are phenomenal. The author explains them in great depth with lots of examples.

  • TBH I haven't learned C++ yet but this definitive guide/list looks promising.

    Assembly/C:

  • Hacking The Art of Exploitation 2nd Edition. Mainly the chapter on programming which pretty much has everything you need. It can get you started with C and ASM and how they compare by stepping through examples using GDB, etc.. Read this if you really want to hit the ground running and then jump into those other books you mentioned OP.

    Also OP while your learning the basics here do as many examples as you can. Don't just read it and assume you know everything. For C you can try coding a bunch of classical ciphers and for ASM, debug the assembly of simple programs in gdb. (check out godbolt) or try coding a echo client/server in Nasm.
u/HiramAbiff · 7 pointsr/C_Programming

C Traps and Pitfalls is good book and much shorter than Expert C Programming. It's based on a paper of the same name that you can get for free. But, the book cover more topics - worthwhile if you can find it at a reasonable price.

u/mysticreddit · 6 pointsr/gamedev

The correct answer to:

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

Is:

A. Yes.

WARNING: Highly Opinionated Analysis of C vs C++


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

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

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

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

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

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

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

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

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

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

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

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

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

    Learn C++ first


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

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


    Learn C first


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

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

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

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

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

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

  • Thinking in C++, Bruce Eckel

    You can find it online for free

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

> that's why I asked whether or not the new owner would own the rights to it because it wasn't immediately disclosed on the ebay listing.

If it isn't part of the listing, the default assumption should be NO, the disc doesn't come with any additional rights.

> I've never heard of an instance where someone purchased source code and it wasn't for the sole purpose of owning the IP in some form or another.

I have. Several times, in fact. Here's one example. This book contains the source code for a complete implementation of the ANSI/ISO C standard library. The source code is provided for educational purposes, and the author of that book used to (maybe still does) sell that same source code as a commercial product, for some tens of thousands of dollars.

> What would even be the point of purchasing source code if you couldn't use it in some commercial way.

Scholarship, searching for prior art to invalidate a patent claim, plain curiosity, or just as an art object to hang on your wall and admire.

> this disc that is being sold contains the source and the original art work. To me that sounds like someone would be acquiring full ownership of the project

That's the fundamental disconnect here. I have no idea why you think this would be different from any other CD you might buy. Just because the content is source code? That's really not any different from any other text. In fact, if you were to look at any of the human-readable files on that disk, they'll almost certainly have a copyright declaration in them that reads ALL RIGHTS RESERVED, which I think is pretty unambiguous. Actually, given that it's from 1996, they might have neglected a copyright notice in every file. Doesn't make it any less protected, though.

u/RandomNumberHere · 6 pointsr/programming

Also, if you like this sort of C mindfuck, buy The C Puzzle Book. Even if you're an experienced developer I bet at some point during the book you go "Oh, wow, I didn't know that." And of course lots of "Who in their right mind would EVER write code that stupid?"

u/create_a_new-account · 5 pointsr/learnprogramming

this book is good https://www.amazon.com/Game-Programming-Patterns-Robert-Nystrom/dp/0990582906/

the authour has put the entire thing online for free

http://www.gameprogrammingpatterns.com/contents.html

you could download SFML https://www.sfml-dev.org/ (a C++ framework that can be used to make games)

and then try and recreate these games
https://www.youtube.com/playlist?list=PLB_ibvUSN7mzUffhiay5g5GUHyJRO4DYr

but make them more complete, more advanced and apply the concepts from the book

this book https://www.amazon.com/dp/0201615622/ is recommended on stackoverflow

u/G01denW01f11 · 5 pointsr/ProgrammingLanguages

A Retargetable C Compiler: Design and Implementation is a book that compiles to a C compiler in C.

u/Enderthe3rd · 5 pointsr/vba

The two I keep on my desk:

Excel 2013 Power Programming with VBA by John Walkenbach

Professional Excel Development by Rob Bovey

The second one is more advanced, but indispensable if you want professional quality applications in VBA.

u/rupturefunk · 4 pointsr/C_Programming

For a beginner I'd recommend Programming in C, it's written in a clear and readable way, with useful exercises, and does a great job explaining the basic stuff.

Secondly, Pointers on C is a fantastic second book, and very much underrated. Much more focused around pointers and memory, and integrates that stuff into it's code examples from the start. This book was massively useful to me when I wan learning, but, it can be hard to get a copy for a reasonable price.

u/phao · 4 pointsr/C_Programming

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

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

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

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

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

u/death · 4 pointsr/programming

The idea of specifying dimensional information in code is not a new one, and I think a lot of work on that was done in Ada decades ago.

In C++, I seem to recall the work done in Scientific and Engineering C++ and, more recently, in C++ Template Metaprogramming.

Incidentally, the latter book has the chapter dealing with dimensional analysis available as a sample chapter.

In Common Lisp, I know of the Measures package, part of LOOM.

u/mciur · 4 pointsr/programming

Off the top of my head:

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/gunder_bc · 4 pointsr/learnprogramming

I can't recommend this book enough: The C Puzzle Book

It goes over all this kind of stuff in great detail. Must-have for anyone studying or working in C/C++

u/burito · 4 pointsr/compsci

As someone who actually did go the route of learning C/C++ as my first language, let me say DON'T.

Python would have to be the best, as the punctuation is very minimal, and lets face it, missing that all important semi-colon is something that's best not worried about while trying to wrap your head around the concepts.

Once you do have an understanding of basic Python, and you're certain you want to learn C++, start with C, specifically, this book. Once you've got your head around pointers, pointer pointers, function pointers, and all the fun ways C allows you to shoot yourself, then aim for C++ (which introduces many many ways to shoot yourself, ontop of the methods C allows).

While it's generally agreed that "The C Programming Language" is the best book to learn C from (it's written by the folks who made C, and it's quite short), I'm not aware of a strong consensus about which book is best to learn about C++, although you could do worse than going straight to the source, Bjarn Stroustrup, the creator of C++, wrote "The C++ Programming Language", link.

Somewhere in there, if you want to write C and or C++, you have no choice but to learn Assembly Language. It's a long running joke that C is simply a high level assembler. The funny thing is though, it's true. If you don't have at least a rudimentary understanding of Assembly, your C/C++ is going to be shit.

u/cosmologicalanomaly · 3 pointsr/PhysicsStudents

You can try just googling python for physics pdf files to help get you started. I found these two places which look like a good start. Python is a fairly simple language I would say and most of the research I did with python I learned pretty much on the spot since the application of python to physics is so varied. There are also a lot of really good textbooks out there not just for python, but I feel once you know C or something you can easily figure out python.

Also the bible when it comes to physics computations is this book. It's written in C, I believe there is one for Java, but like I said if you learn C picking up Python should be pretty simple. You might find it online somewhere. I should also add that this is a bible in helping you write pseudo-code algorithms for solving multiple types of mathematical expressions - translating the pseudo-code into actual code is where the learning process coding comes into play.

u/CodyChan · 3 pointsr/C_Programming

Agreed, C Programming A Modern Approach, 2dn edition is the textbook I would recommend if you want to learn C, K&R is classic , but it lacks a lot details in C which are coverd in books like Pointers on C and C Traps and Pitfalls, C Programming A Modern Approach, 2dn edition covers most, if not all, of them.

u/vcarl · 3 pointsr/programming

Not sure about C, but for C++ this book is pretty awesome. It's written by the guy who designed C++, so yeah.

u/Sdyess · 3 pointsr/learnprogramming

Of course! References can be your best friend. There are even some books specifically meant as a reference material, like Stroustrop's giant textbook ( http://www.amazon.com/Programming-Language-3rd-Bjarne-Stroustrup/dp/0201889544 ) They can really help out if you're stuck on something.

u/Rhomboid · 3 pointsr/learnprogramming

If your primary goal for learning C is performance, then I would stop and back up. Matlab is going to be able to do matrix operations faster than your hand written C, because it knows tons of tricks to get performance out of hardware. Scipy as well will give you access to libraries like LAPACK and BLAS that are already highly optimized for those specialized types of computations and run at native speed. And implementing a solver/algorithm in Matlab or Python is going to be much easier and require less programmer time than doing the equivalent in bare C. Turning to C should be a reactive decision ("I have a working model in Matlab but it takes too long to execute") and not pro-active ("I heard C was the fastest, so I'll start there.")

If you really want books on C, then try Numerical Recipes in C: The Art of Scientific Computing. But I must warn you, most of the code in this book and others like it is simply ghastly. It is written by and for scientists, not programmers, with an emphasis on getting things done without regard for "code smell" or modern programming practice. It is the last thing you want to learn C or any other language from.

u/gregK · 3 pointsr/programming

I disagree somewhat with that distinction. The reason I say this is that a few of the patterns in GoF where actually documented as idioms in Advanced C++ Programming Styles and Idioms and recast as patterns. On the other hand, some purists argue that the GoF patterns are not even real patterns in the Alexandrian sense, therefore they would all be idioms.

So if you are sticking to the GoF definition of patterns, they aren't much more than idioms. If you look at the Alexandrian patterns, then I might agree with you. A good distinction would be to limit idioms to language specific solutions and real patterns to solutions that arise independent of the language. I edited my reply above to reflect this.

u/joenyc · 3 pointsr/learnprogramming

I think that there's more bad code written in VBA than any other language. In my experience people get out of college, start at a job, and get assigned the VBA tasks because no one else wants to do them.

Everyone, even CS graduates, even experienced developers, somehow forgets everything that they have ever learned about software engineering, as if VBA isn't "real" programming, so the rules don't apply. It's like a disease, and OP, you are at risk. You feel fine today, but tomorrow you'll write thousand-line functions named "doIt", you'll have zero encapsulation of any kind anywhere, and whenever you hit a problem you'll play with the macro recorder or read forums populated by desperate, subliterate morons who apparently write code while high on crystal meth. The second something sort of works, once, on one machine BOOM it's done, it's fixed, call it a day.

I used to be that person.

Now I've read Professional Excel Development. I would give anything to be able to give that book to myself 5 years ago. If I had a time machine, that would be job one. Would I kill Hitler? Meh, you have to weigh the holocaust against some of the VBA code I've seen. It's a tough call.

Read the book, OP. Read it for your own sake. Read it for your coworkers'. Read it for mine.

(I don't get any payment from that link, btw - I wouldn't feel right selling it. In fact, I might start a charity to give it away.)

u/kalven · 3 pointsr/programming

Pick up a copy of Accelerated C++. It starts at the very beginning and takes a more modern approach to teaching C++ than a lot of the other books on the market.

It's part of the "C++ in-depth series" that also has a bunch of other great titles like Sutter's Exceptional C++.

u/adamoo403 · 3 pointsr/PowerShell

PowerShell in Action is apparently quite good. I read somewhere if you wanted a more in depth read on what/how powershell is doing, more so than in 'A month of lunches' then this is the one you want. I haven't read it myself, but I have the 3rd edition on order and its due in May

u/kerosion · 3 pointsr/excel

Let's look at it from another angle. What are you going to be doing with Excel?

My experience is that it's all about the Data Process. You have to clean it up. Check the minimum values, maximum values, date ranges, see that different fields are what you want. Half your SSNs are text and half are numbers? How do you deal with that?

Do you have all the information needed for the statistical analysis you want to do?

Your client claims this list of people have been paid out this much. Here's a list of actual benefit payments from their bank trust. Compare them and explain the differences.

For added fun, the bank trust gave you benefit payment information as pdf files. Turn them into excel and find some way to connect them to each participant.

May be worthwhile to simply research the data process and build from there. Much of the actual learning comes from working with others and paying attention to the tricks and hotkeys they're using. Every single candidate puts 'proficient in Excel' on their resume. Telling a story about something done with it is usually better.

Hell. Research Beersheets for fantasy football, rip it apart and see how it ticks. Apply lessons learned to another sport.

Burning through this there are certain things you run into often.

VLOOKUPS. COUNTIF. Filters. DATE. TEXT. MATCH. Grouping. VALUE. General practices such as color-code inputs. Center Across Area rather than Merge Cells.

alt+e+s in sequence to bring up special paste options. (alt+e+s+v for paste values and alt+e+s+t for paste formats are super common. paste transpose exists.)

There's got to be some online site to offer services for pay. I'd be shocked if there's not someplace to offer data cleanup.

Really want to go to the next level? Dive into VBA. The go to is Excel 2010 Power Programming with VBA. Read through a section, do all the examples, come back then try to do them all again without guidance. This gives insight into a lot of what goes on behind the scenes in Excel, teaches many hotkeys you wouldn't otherwise pick up on. The moment I discovered how to access the Immediate window (ctrl+G) then learned to throw a Print command or two into my coding to test values in the VBA editor was the key moment I connected my programming in VBA to what I had done in R, Matlab, C, or Python.

In college is an excellent time, because you have time. It doesn't seem like it now, but time is hard to find afterward as well.

u/RavenousBug · 3 pointsr/learnprogramming

These are books I read many years ago, they can be helpful but may be dated and will not include newer features. But as an introduction they worked well.

Thinking in C++ Voume 1 and 2 by Bruce Eckel

https://www.amazon.com/Thinking-Vol-Introduction-Standard-2nd/dp/0139798099/ref=dp_ob_title_bk

https://www.amazon.com/Thinking-C-2-Practical-Programming/dp/0130353132/ref=pd_sbs_14_1

And Scott Meyers

Effective C++ - https://www.amazon.com/Effective-Specific-Improve-Programs-Designs/dp/0321334876/ref=pd_sbs_14_2

Effective STL - https://www.amazon.com/Effective-STL-Specific-Standard-Template/dp/0201749629

u/verandaguy · 3 pointsr/C_Programming

Seconded. At the risk of being branded as a shameless O'Reilly plugger, I recommend this book for OP. It was immensely helpful when I was learning C; I found that K&R's description of them was complete, but lacked the tutorial aspect.

u/sh33ple · 3 pointsr/programming

Python seconded. Learning multiple languages, especially ones that differ significantly from the ones you already know, is one of the keys to being a good programmer. This is some of the advice in Peter Norvig's Teach Yourself Programming in Ten Years.

How to think like a computer scientist is an OK introduction to Python and programming, but it's very undeserving of that title as it really doesn't touch on what one might call computer science. In fact the more computer-sciencey parts are pretty poor – for example, the section on tail recursion is complete crap that will just confuse someone who doesn't already know the what and why of tail recursion.

If you're dead set on Windows and C++ you don't need VS Pro, MS have a free version. It's unlikely you'll really need the extra features that come with the pro version. Also once you're past learning the basics, read a copy of Effective C++ and Exceptional C++. And try not to get sucked too heavily into the weirdisms of the Windows style of C++ programming, they do funny things over there.

u/Terkala · 2 pointsr/vba

If you want tips for style-guides on implementing in excel and some vba best practices, I'd also suggest

https://www.amazon.com/Professional-Excel-Development-Definitive-Applications/dp/0321508793

But that's more for "here is how you make your work look top notch and be easy to maintain for 5+ years".

u/pjmlp · 2 pointsr/programming

Maybe you missed one of these books:

Compiler Design in C

[A Retargetable C Compiler: Design and Implementation](http://www.amazon.com/Retargetable-Compiler-Design-Implementation/dp/0805316701/ref=sr_1_1?s=books&ie=UTF8&qid=1396702490&
sr=1-1&keywords=A+Retargetable+C+Compiler%3A+Design+and+Implementation)


u/nkassis · 2 pointsr/programming

Well there this book I used to learn C++ that takes a similar approach (building up from C): Thinking in C++ there was a free version of it online but link is broken on www.bruceeckel.com

I think it's worth the read even if you never did much C and just want C++. And it does a better job than the linked article I think. (I know it's unfair to compare a blog post to a full book).

u/IRBMe · 2 pointsr/learnprogramming

Almost certainly not. Those "Learn x in y days/weeks" books are usually not worth the hundreds and hundreds of pages of paper that they're written on. My advice would be to steer clear of them and pick up something better like Thinking in C++.

u/AcornBiter · 2 pointsr/learnprogramming

With VBA, I think it would be very boring and hard to learn out of a book. Really the best way to learn is to have a simple task in Excel that you can automate with VBA. Then as you do more and more your knowledge grows organically. If that's not possible, I learned a lot from this book. Or you can get the updated 2016 version.

For SQL, I mostly use W3Schools when I forget some syntax, so that might be a good place to start.

u/Wriiight · 2 pointsr/cpp

I like Josuttis as a standard library reference. It might not be your traditional "Learn how to program" book, but it will remain on your shelf long after you've tossed out the rest of your beginners books. (I also notice that he seems to have a C++11 book coming out soon.)

http://www.amazon.com/Standard-Library-Tutorial-Reference/dp/0201379260/ref=sr_1_1?s=books&ie=UTF8&qid=1324964906&sr=1-1

I learned C++ from Dietel & Dietel 1st Edition, but I noticed that by the 4th edition the book had gotten a bit obnoxious. Maybe they've corrected some of that now that they are on their 8th edition? If nothing else, at least they have been doing the C++ book thing for well over a decade.

http://www.amazon.com/How-Program-8th-Paul-Deitel/dp/0132662361/ref=sr_1_1?ie=UTF8&qid=1324965103&sr=8-1

u/Vance84 · 2 pointsr/learncsharp

I've been reading through The C# Programming Yellow Book, it seems to explain things pretty well
https://www.amazon.com/C-Programming-Yellow-Book-ebook/dp/B00HNSGM9A/ref=zg_bs_697342_6

u/alfps · 2 pointsr/cpp_questions

Regarding

> I am confused about why this is a copy constructor and not just a normal function:

> class Core {
> friend class Student_info;
> protected:
> virtual Core clone() const { return new Core(this); }
>
> private:
> Core cp; //sorry I think this is how it was declared, but I hope it is close enough
>
> // bunch of other code
> };

The clone function
is a normal member function, and is not a copy constructor.

However, the implementation (function body) of that function uses the class' copy constructor.

At one point the term virtual constructor was used about a clone function. I think but I'm not sure that that term was introduced or popularized in ¹a book by Coplien. Today that term is not much used, if it's used at all: I've never seen it used except in comments about terminology for clone functions. :)

---

Regarding

> First of all, I thought a copy constructor was in the form
>
> classname (const classname &obj) {
> // body of constructor
> }

That's one of the 4 forms a copy constructor can have.

The other three forms have formal argument types T&, volatile T&, and volatile const T&.

Formal argument type T, passing by value, is not a copy constructor, because you need a copy constructor to pass that argument, and a class can have just one copy constructor.

---

Regarding

> Did the act of copying those two cp pointers bring us to this statement?:
>
> virtual Core
clone() const { return new Core(this); }
>
> Or was it just calling clone()?

The Student_info copy constructor is executed as a result of an attempt to copy an instance. Usually it's an implicit call, e.g. via = initialization syntax, or passing an argument by value.

The Student_info copy constructor calls Core::clone, via the explicit call in theStudent_info copy constructor function body. Since the clone function is an ordinary member function, nothing special about it, in particular, it isn't a conversion function, it can't be called implicitly. So it will not be called out of the blue.

In the Core::clone function there is an explicit call of the Core copy constructor.

---

Note that the terminology I use here, talking about an explicit constructor call, is contested. It beats me why, but some quite competent people have insisted that constructors can't be called by user code, even after being pointed to e.g. the C++03 definition of default constructor (one that can be called without arguments). I only convinced one of them that that choice of terminology, not using the terms “call” or “explicit” about constructor calls, was impractical, and that was after several years, and via an argument that is a well known logical fallacy, namely, an appeal to authority: I finally found an article by the language creator Bjarne Stroustrup where he used these words.

---

Notes:*
¹ Googling indicates that the book by Coplien was “Advanced C++ Programming Styles and Idioms” published in 1991. That predates the first C++ standard by 7 years.

u/spc476 · 2 pointsr/C_Programming

My "go to" resource for years is P. J. Plauger's The C Standard Library. Not only does it quote the relevant standard, but goes into the history of why the standard functions are the way they are, plus gives a sample implementation of each function. It only covers the functions in C89 but I still refer to it from time to time.

u/---sniff--- · 2 pointsr/vba

Professional Excel Development really showed me the limits of what can be done with Office.

https://www.amazon.com/Professional-Excel-Development-Definitive-Applications/dp/0321508793

u/Broinz · 2 pointsr/C_Programming

I too started with C as my first language using K&R and "learn C the hard way" but i abandoned both halfway. I've started from beginning with "A modern approach to C" as my main source and C: A Reference Manual as, well reference manual when i wanted more in depth knowledge about particular subject. After you're done with Modern approach you should go back to K&R and finish it in order to have your foundation properly rounded.

Edit: I should add few more resources that generally helped me a lot when I started:

http://c-faq.com/

C Traps and Pitfalls

C Standard Library

Things you should avoid in C

A Guide to Undefined Behavior in C and C++

u/Mr_Ected · 2 pointsr/learnprogramming

Here are my favorite books for sharpening your C saw. The great news is that all of these are less than 300 pages each.

The C Programming Language (Kernighan, Ritchie)

An essential for all C programmers. It's short but dense and it's packed full of great exercises.

Data Structures in C (Kalicharan)

This book offers a practical look at data structures and a few algorithms. It has a bunch of exercises to help you retain what you're learning.

The C Puzzle Book (Feuer)

A tiny book packed with a bunch of C puzzles, the pointers chapter is especially helpful.

u/naval_person · 2 pointsr/AskEngineers

Since you are a practicing engieer with plenty of experience, I will suggest the right way to learn rather than the speed-of-the-internet , show-me-a-web-page way to acquire jargon.

Buy and read textbooks.

Start with Numerical Recipes by Press et al (Link 1). It has a couple of chapters on optimization and some very VERY excellent discussion. It will teach you the way academics formulate these problems, and how they solve them today.

Then read Gill, Murray, and Wright "Practical Optimization" (Link 2).

Next comes Roger Fletcher, "Practical Methods of Optimization". This book has been published two different ways: as a single volume, and also split into two volumes. Since Amazon Used Books sells the two volumes for considerably less money, I recommend that path: (Link 3) and (Link 4) .

After you have read those books, you will be able to appreciate the following paragraph:

I myself have found, in practice, that some of the old 1960's approaches to optimization work DELIGHTFULLY WELL on 2015 real world engineering problems, using 2015 computer power. In fifty years the problems have become 10,000 times more difficult and the computers have become 2^(50/3) times more powerful. The computers are winning the tug of war.

Make an honest try to solve your problem using no-derivative unconstrained optimizers, plus penalty functions or barrier functions for the constraints. I think you will be very pleasantly surprised. If you have honestly done your best and tried your hardest to get this to work, and failed, then your fallback is to implement the full stochastic miasma. Start with the TOMS paper by Corana, Marchesi, Martini, and Ridella. It is the most engineering-results oriented discussion I know of. If you are a masochist, try (just try!) to read the various publications and white papers by Lester Ingber. You will regret it.

u/ComputerScienceIsFun · 2 pointsr/Random_Acts_Of_Pizza

The book that changed my life is called: The C++ Programming Language, the author's name is Bjarne Stroustrup and he is the inventor of the C++ language.

This book is about the C++ programming language, the syntax, and the uses.
At first I wanted to learn about computers but when I picked up this book I became so interested in software developing that it got me reading other books about other programming languages and now I know 4 of them. It helped me make a choice in my major and now I'm studying software development in college.

u/rbartlejr · 2 pointsr/learnprogramming

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

u/reventlov · 2 pointsr/programming

First, be prepared to write code that sucks and is unmaintainable for a while. (This could be months or years.)

If you only know Java, then you'll need some C concepts. In particular, you need to become familiar with pointer arithmetic, avoiding buffer overruns, and manual memory management. (C++ has ways (RAII) to make manual memory management less error-prone, but you still need to understand what's going on.)

To learn the basics of the language, read The C++ Programming Language, Special Edition, by Bjarne Stroustrup.

Read a lot of things by Herb Sutter and Andrei Alexandrescu. I particularly recommend Modern C++ Design and Exceptional C++; I'm sure others in this thread can give you some good suggestions.

Finally, start writing code, and get it critically reviewed by someone who really knows C++. (I've known 2 or 3 such people in my career; they exist but are the exception, not the rule. Look for people who can explain all the things I listed, and more.)

(Edited to add The C++ Programming Language.)

u/th7957 · 2 pointsr/cpp

There are a handful of books out there, but this one is generally considered the definitive text. David Abrahams and Aleksey Gurtovoy are way smarter than I could ever hope to be, so I had to do a lot of work to get through this book and grasp the basic concepts.

u/vedicvoyager · 2 pointsr/ECE
u/Poloniculmov · 2 pointsr/Romania

wiki zice ca Zamiatin ar fi o influenta pt Ursula Le Guin, trebuie sa incerc.

Din cartile de IT e ceva bun? Eu am recitit de curand CLR via C# si o ultra recomand oricui scrie C#.

u/balefrost · 1 pointr/AskProgramming

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

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

u/odles_44 · 1 pointr/excel

personally, i've really enjoyed Power Programming with VBA by John Walkenbach. It is very elementary, with lots of examples and a disc included. If you are a total noob (like me) and want to speed up repetitive BS at work, this isn't a bad one to pick up.

u/KeyboardRambo · 1 pointr/cpp_questions

Check out this book: Understanding and Using C Pointers: Core Techniques for Memory Management https://www.amazon.com/dp/1449344186/ref=cm_sw_r_cp_apa_i_Eb-tDb8FMT3Y0

Other than that, I had trouble with pointers to arrays and the concept of "array decaying". You should take a look at them to better grasp pointers.

u/ponjey · 1 pointr/learnprogramming

Actually, I thought you were referring to: Pointers on C by Kenneth Reek.

I'll check yours, too.

u/jasonmorales · 1 pointr/gamedev

I made the transition by essentially rewriting a C game engine, piece by piece in C++. I don't know if you are a programming novice or just a C++ novice, but either way working within an existing code base can be a great help.

Most of my reference came from:
"C++ For Game Programmers" - http://www.amazon.com/dp/1584502274
And of course, the C++ bible - http://www.amazon.com/dp/0201889544

The latter isn't really so much of a "read it through" as an invaluable reference for how things work.

This is also quite handy: http://www.parashift.com/c++-faq-lite/

u/drmcclassy · 1 pointr/EngineeringStudents

For anyone getting into programming, I strongly recommend The Pragmatic Programmer

This is a little more specific, but if anyone is working with .Net, I'm currently reading CLR Via C# and I think it's amazing.

u/contrarian · 1 pointr/learnprogramming

So far I am kind of happy with this get the kindle version and read it on your laptop and run the examples in VS Express. $16 and it will take you at a whole bunch of hours to go through the content, more if you want to really learn it in dept and use each learning nugget to search for more information about it online.

u/Yifu · 1 pointr/cpp

Thinking in c++ by Bruce Eckel. Good one I've used to learn the langage while being students.

http://www.amazon.com/Thinking-Introduction-Standard-One-2nd/dp/0139798099/ref=pd_sim_b_1/190-9785840-9713239

u/keltor2243 · 1 pointr/learnprogramming
u/maredsous10 · 1 pointr/ECE

My General Thought

I find it is best to learn and get exposure from several book/media sources coupled with actual application of things learned.

----

Introductory Texts/Links

Short Intro
http://heather.cs.ucdavis.edu/~matloff/unix.html

C Programming: A Modern Approach
http://knking.com/books/c2/index.html

Head First C (Different Presentation Style, check amazon preview)
http://www.amazon.com/Head-First-C-David-Griffiths/dp/1449399916/

Programming in C
http://www.amazon.com/Programming-C-4th-Developers-Library/dp/0321776410/

PDF Tutorial
http://phy.ntnu.edu.tw/~cchen/pdf/ctutor.pdf
Original Here > http://www.tutorialspoint.com/cprogramming/index.htm

C The HardWay (Mostly complete)
http://c.learncodethehardway.org/book/

Zed's K&R Critique
http://c.learncodethehardway.org/book/krcritique.html

Practical C Programming
http://shop.oreilly.com/product/9781565923065.do

Ben Klemens Modeling with Data book has a short C introductory section.
http://ben.klemens.org/pdfs/gsl_stats.pdf

-----

Reference
Harbison and Steele C Reference Manual
http://www.careferencemanual.com/

Plan on developing on Linux?
The Linux Programming Interface: A Linux and UNIX System Programming Handbook
http://www.amazon.com/dp/1593272200/

Didn't get Pointers?
http://www.amazon.com/dp/1449344186/

21st Century C, This book got dogged a lot, but I think its a nice text.
http://www.amazon.com/21st-Century-Tips-New-School/dp/1449327141

K&R Scan (If you want an idea what's inside K&R)
http://www.iups.org/media/meeting_minutes/C.pdf

-----

Need an Editor?
VIM Book
ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf

Vim Video Tutorials
http://derekwyatt.org/vim/

-----

Back in the Day
I used these books years ago. They're somewhat dated, but still useful and cheap.
Programming in ANSI C
http://www.amazon.com/Programming-ANSI-Hayden-Books-library/dp/0672484080
Advanced C: Tips and Techniques (Hayden Books C Library)
http://www.amazon.com/Advanced-Techniques-Hayden-Books-Library/dp/067248417X/

----

C Language Basics
How do I read/write files
How things are implemented at a lower level
Compiler Options and Functionality
What is a make file?
Debugging... How to do it... How do I use a standard debugger like GDB?



u/chriswaco · 1 pointr/iOSProgramming

The Standard C Library might be the best library to look at first. Richard Stevens' Unix books are also very good.

Others include CoreFoundation, OpenGL, ffmpeg, etc.

u/ViperSRT3g · 1 pointr/vba

If we're going with Amazon, might as well add this to the mix: VBA for Dummies

u/hilduff5 · 1 pointr/OSUOnlineCS

Im currently in the class now. I agree with the previous posts in that reviewing C is a great idea. The whole class is entirely in C. I also recommend to get a supplemental book on C. The book in the link below really saved my ass.

Understanding C Pointers

u/Truth_Be_Told · 1 pointr/C_Programming

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

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

u/dsvella · 1 pointr/vba

Link to Amazon.co.uk. I cannot remember the edition I have (it's in the garage somewhere) but that seems to be the most recent.

u/ZeroBugBounce · 1 pointr/learnprogramming

|will I ever have to use ArrayList again?

You are correct, no you wouldn't have to at least in the vast majority of cases. As an aside, If you use a generic List<T> with object as the type (List<object>) it will work the same way as ArrayList - but normally you'll rarely have to use object as the generic type parameter.

|How can I make it work, then?

The scenario I provided is kind of unlikely, and you won't be able to completely escape type restrictions. But there are ways to make that example code work, however I doubt you'd every have to or want to use them. If you must know, I was thinking of the implicit conversion operator - User could convert itself to and from int (if that made sense to do!). Also, C# as of .NET has the 'dynamic' keyword, which could help accomplish similar semantics.

I was just thinking, if you want the soup-to-nuts of the .NET type system, delegates, generics, LINQ, lambdas and everything else, you might want to look into some of the books that cover things both in breadth and depth. I would personally recommend Jon Skeet's C# in Depth and Jeffery Richter's CLR Via C# both of which are flat out amazing, IMHO.

u/BloodyThorn · 1 pointr/learnprogramming

This one for basic C# and OOP.

Beginning Visual C# 2010

O'Reilly has great reference books.

C# 4.0 in a Nutshell: The Definitive Reference

From there you can learn Mono for Android (and iOS)

Professional Android Programming with Mono for Android and .NET/C#

While learning XNA game development by example,

XNA 4.0 Game Development by Example: Beginner's Guide

And by detail...

Learning XNA 4.0: Game Development for the PC, Xbox 360, and Windows Phone 7

u/epoxxy · 1 pointr/learnprogramming

Beginning visual c#
On a side note,in a few months you could have learned a lot, no matter the sources....

u/myevillaugh · 1 pointr/learnprogramming

Programming C# 4.0 is great for learning and starting out.

Once you're comfortable with the language, go through CLR via C#. This will teach you how things work in detail.

u/AnHeroicHippo · 1 pointr/cpp

Advanced C++ Programming Styles and Idioms is pretty unconventional: the author assumes you are already familiar with programming concepts and C++ syntax, and presents a plethora of C++ idioms, at least half of which are... let's say unconventional applications of C++'s power of abstraction, that make you think outside the box. Amazon's synopsis and the reviewers there do a better job at describing it though, so give that a read.

You should read an intermediate-level C++ book or two before diving into this one in order to truly appreciate its eccentricity (which should open your eyes considerably). It is a rather strange book: it reads more like a novel than a desktop reference.

u/Midnight_Moopflops · 1 pointr/sysadmin

Another "lunches" book to read after the first is Powershell Toolmaking in a month of lunches there's another book coming out on the matter of Scripting later this year.

Also, for reference see if you can get Powershell in Action

It was written by the man who architected and designed the bloody thing, so you're in good hands. I've not read it cover to cover, but it's certainly the definitive reference on the subject.

All above books rated 5/5 stars on amazon by a lot of people.

If you're so bogged down, stitched up and scared to even think about automating anything, then I'd absolutely recommend The Phoenix Project this is the paradigm shift IT has gone through over the past decade. Essentially, IT has taken on board efficiency and best practices that have been standard in the manufacturing industry for decades, to incredible success.

Seriously, "Bag of Nails" IT shops are on their way out. If they're that unwilling to take a step back and do things the smart way, they're a shit company to work for. Learn about technical debt and why it's critical to pay it off.

DevOps and Site Reliability are in essence the latest buzzwords in IT service management, but there's a lot of positive change going on in the industry off the back of it. There's a sort of productivity Gold Rush.

If you're bogged down your current job sounds like the perfect place to cut your teeth and leapfrog off the back of it to move into a better organisation who wants to work smart.

Have fun!

u/xcbsmith · 1 pointr/programming

This kind of stuff is available in painful detail in Josuttis' book, but there is a fair bit of "other stuff" in there.

That said, better than the fish book for someone who wants just the good stuff would be Effective STL and/or Standard C++ IOStreams & Locales.

u/sarevok9 · 0 pointsr/learnprogramming

It makes every list because it's a decent book and presents the basics of OO in a cohearent manner?

http://www.amazon.com/Thinking-Introduction-Standard-One-2nd/dp/0139798099

85 customer reviews agree?

I'm not saying that it's a magical book that will turn you into a guru of C++, but with that book, some dedication, and some googling, it really is a great place to start in C++. Understanding the C-roots of C++ is intensely important for problem solving. I'm not sure why you have a problem with that, can you please explain?

u/zachary12 · -1 pointsr/learnprogramming

Not much help re: which language. Logic would dictate the next move to be language agnostic design patterns, re-factoring et alli. <- ignore, did not read.

For a decent C# book, I'd recommend CLR via C# (http://www.amazon.com/CLR-via-C-Jeffrey-Richter/dp/0735627045)/