(Part 3) Best computers & technology books according to redditors

Jump to the top 20

We found 39,382 Reddit comments discussing the best computers & technology books. We ranked the 9,387 resulting products by number of redditors who mentioned them. Here are the products ranked 41-60. You can also go back to the previous section.

Next page

Subcategories:

Computer & video game strategy guides
Software certification guides
Computer science books
Web development & design books
Networking & cloud computing books
Operating systems books
Computer programming books
Programming languages books
Computer software books
Computer graphics & design books
Internet & social media books
Databases & big data books
Computer hardware & DIY books
Business technology books
Mobile & wireless computing books
Computer security & encryption books
Digital audio, video & photography books
Computer history & culture books

Top Reddit comments about Computers & Technology:

u/samort7 · 257 pointsr/learnprogramming

Here's my list of the classics:

General Computing

u/Thorium233 · 227 pointsr/technology

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

u/praisebjarne · 177 pointsr/learnprogramming

Hey! This is a really cool project idea, especially for a tutorial, but there are some things in the code that concern me.

Before I go any further, a disclaimer: You are not your code.

I work in the industry at a very big studio as a gameplay programmer, and there are a couple parts of this code that I saw right when opening the github that made me want to comment about code quality.

In Animated Sprite - you take in a file path and load an image directly from disk. This, on a large scale, will cause problems at load time. It could be ameliorated by doing all asset loading up front and maintaining a manager to dole out references to them in memory instead of from disk.
Secondly, Enemy inherits from Animated Sprite. This breaks a few rules, specifically the IS-A relationship in inheritance (also covariant problems. This is why the industry as a whole favors composition over inheritance. An enemy that is renderable might have a sprite to render with, but it wouldn’t BE a sprite.

There are other criticisms, but I’ll stop here. What I wanted to say was – Caveat Emptor. This is a fun project to learn what goes into a game, and no one here should quit based on these criticisms, especially if it inspires your passion. Rather, use this as an avenue to learn good software practices that can actually land you a gig in the industry.

A good resource for this project might be Game Programming Patterns or Game Engine Architecture.

Sorry if this came across offensive, but since this is r/learnprogramming, I figured it was a good chance to learn.

EDIT: Formatting
EDIT: GOLD?!

u/Dab_on_the_Devil · 156 pointsr/2meirl4meirl

It's 'cause the internet has shifted the capacity of our brains away from deep focus and towards shallow multitasking. It's why we do shit like close Reddit on our computers then pull out our phones and open Reddit again without thinking about it. If you're really curious to learn more about it, try to stay focused long enough and read The Shallows; If you're really interested in pushing back then look into meditation.

u/SpiderFnJerusalem · 74 pointsr/Python

Never liked that book tbh. If it works for you that's fine. Buit for me its tone is way too strict, condescending and most of the time it never explains why some things have to be done the way they are. It's as if the author forces his coding style on you and doesn't bother to give context.

I enjoyed "Automate the Boring Stuff with Python" much, much more.

u/koeningyou666 · 73 pointsr/netsecstudents

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

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

Web Hacking:

The Web Hackers Handbook (Link)

Infrastructure:

Network Security Assessment (Link)

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

General:

Hacking: The Art of Exploitation (Link)

Grey Hat Hacking (Link)

Linux:

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

Metasploit:

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

Nmap:

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

Malware Analysis:

Practical Malware Analysis (Link)

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

Programming / Scripting:

Python: Automate the Boring Stuff (Link)

Hope that helps.

u/VA_Network_Nerd · 60 pointsr/networking

Consider buying these, or checking them out from local library:

Network Warrior

The Practice of System and Network Administration: Volume 1: DevOps and other Best Practices for Enterprise IT (3rd Edition) 3rd Edition

-----

Cisco / Networking

Stanford University Free Introduction to Networking Online Course
Cisco Learning Center - How to Study for CCNA for Free
Professor Messer's CompTIA Network+ Training Videos
Cybrary Free CCNA Training Videos
Cisco VIRL - Virtual Router & Firewall Training Tool
GNS3 Vault - Free Practice & Training Labs for Cisco Equipment
Cisco Live Training Convention Video Portal - Free Registration Required
Cisco Design Zone - Best Practices
PacketBomb - WireShark Training Center
NetCraftsmen - Network Consultants Blog
PacketPushers News & Podcasts
IOSHints - Ivan Pepelnjak's Blog/site
Cumulus Networks SDN Technical Videos
SDX Central - SDN Resources



-----

The Best of Cisco Live

Cisco Live is Cisco's annual Technology expo & training convention.

All of these presentations are available for free here: http://www.ciscolive.com/online - Many with video presentations of the lectures.

BRKARC-3001 - Cisco Integrated Services Router G2 - Architectural Overview and Use Cases (2013 Orlando) - 2 Hours
BRKARC-3001 - Cisco Integrated Services Router 4000 - Architectural Overview and Use Cases (2015 San Diego) - 2 Hours
BRKARC-2001 - Cisco ASR1000 Series Routers: System & Solution Architectures (2015 San Diego) - 2 Hours
BRKARC-1009 - Cisco Catalyst 2960-X Series Switching Architecture (2016 Las Vegas) - 90 Mins
BRKARC-3438 - Cisco Catalyst 3850 and 3650 Series Switching Architecture (2015 San Diego) - 2 Hours
BRKARC-3445 - Cisco Catalyst 4500E Switch Architecture (2015 San Diego)
BRKARC-3465 - Cisco Catalyst 6800 Switch Architectures (2015 San Diego) - 90 Mins
BRKARC-2222 - Cisco Nexus 9000 Architecture (2015 San Diego)

...

BRKCRS-3147 - Advanced troubleshooting of the ASR1K and ISR (IOS-XE) made easy (2015 San Diego) - 2 Hours
BRKCRS-3146 - Troubleshooting Cisco Catalyst 3650 / 3850 Series Switches (2015 San Diego) - 2 Hours
BRKCRS-3142 - Troubleshooting Cisco Catalyst 4500 Series Switches (2015 San Diego) - 2 Hours
BRKCRS-3143 - Troubleshooting Cisco Catalyst 6500 / 6800 Series Switches (2015 San Diego)
BRKDCT-3101 - Nexus 9000 (Standalone) Architecture Brief and Troubleshooting (2015 San Diego)
...

u/zitterbewegung · 58 pointsr/math

In the art of computer programming there are problems with a rating of 50 which are unsolved research problems.
In the first chapter they used to give Fermat's Last Theorem as a score of 50 but since it has already has a proof it is now at 45 .

https://www.amazon.com/Computer-Programming-Volumes-1-4A-Boxed/dp/0321751043/ref=sr_1_1?ie=UTF8&qid=1484672727&sr=8-1&keywords=the+art+of+computer+programming

u/Hodorgasm · 44 pointsr/cpp
u/Aeiorg · 43 pointsr/gamedev

First of all, I wouldn't recommend learning game coding by looking at a codebase, the biggest reason being that all games are different and are using different techniques (obvious one being 2D vs 3D, but you have tons of differences between a FPS, a RTS, an open-world, etc).

I would recommend to find books or articles that explain why a certain technique is usefull, the coding language doesn't really matter, the technique itself is what is important (As you are saying it's for learning purposes and I don't think it's quite interesting to understand data-driven programming, cache optimization or 3D APIs optimization for C++ when you are first trying to understand a game structure).

I can recommend two really good books :

u/DOOMReboot · 42 pointsr/gamedev

I've been working on games for quite a long while so I picked it up here and there.

I haven't gone through this particular series myself, but I've browsed through it and his (thebennybox - everything he makes is high quality) series on creating a software renderer, and they are fantastic!

https://www.youtube.com/watch?v=ss3AnSxJ2X8&list=PLEETnX-uPtBXP_B2yupUKlflXBznWIlL5

This is by far my favorite book:

https://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010

I'd recommend thebennybox's video series first, the book may not be quite as beginner-friendly.

u/TroyDowling · 41 pointsr/physicsgifs

If you mean near the anode of the battery between the two humps of wire, I don't think so. Looks like the reflection on the hump whizzing by the camera real fast. However, in an inductive load like a motor, if not handled, you can expect to see sparks when the circuit is broken.

See:

u/rusty_shaklefurd · 37 pointsr/Cyberpunk

A central concept in cyberpunk and hacker culture is the idea of planned obsolescence: Corporations can make more money if they get you to buy their products multiple times instead of just once. This leads to a world where everything is discarded and the wealth gap is very clear between the people who have the new and the people who have the old.

The fact of the matter is that DNA is not our friend. Humans were built to spread our seed and be destroyed. We are a tool that DNA uses to extend it's own life. The human body is amazing in many ways, but it's amazing like a disposable razor is amazing. There's no mechanism to prevent cancer, no mechanism to prevent the development of back problems, and no mechanism to prevent it from withering away like a rotten fruit when it's purpose of reproduction has been served.

The implementation of transhumanism might be flawed, but so are all human endeavors. That's what cyberpunk is about: Figuring out how to deal with a world ruled by technology. Sometimes it doesn't go as smoothly as we imagine. The message of transhumanism is still clear, though: DNA doesn't own this planet any more, we do, and the name of the game is going to stop being reproduction and start being the enjoyment of existence.

Since you seem to be basing your understanding almost entirely on fiction, let me recommend some reading

u/Letmefixthatforyouyo · 36 pointsr/sysadmin

Okay. It was /u/iconrad. Here is the thread:

https://www.reddit.com/r/linuxadmin/comments/2s924h/how_did_you_get_your_start/cnnw1ma

Also, I highly, highly recommend buying "The linux command line". Its a book aimed at beginners that will teach you the why, what and how of linux like no other. Its also free on the authors site in true libre fashion.

u/two-gun · 29 pointsr/linux4noobs

Sorry for getting all dramatic, but for me you're asking a red pill/blue pill question. I applaud your curiosity and can only recommend you follow your gut and take the red pill. The truth is by asking the question you already know what to do next. Just keep going. However I'll give you a few ideas because you got me excited.

  1. Get in touch with your osx terminal
  2. Get linux ASAP
  3. Learn the command line

    OSX Terminal


    Underneath the shiny GUI surface of your mac you have an incredible unix style OS just waiting to be played with and mastered. A few tips to get you going.


    Download iTerm 2. Press cmd-return, cmd-d and command-shift-d.


    Congrats. you now have a hollywood hacker style computer

    Copy and paste this line into your terminal and say yes to xcode.


    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    Awesome you now have homebrew. A linux style package manager.

    May as well get cask too.


    brew install caskroom/cask/brew-cask

    Now you can install programs by typing a couple of words.

    try

    brew cask install virtualbox

    Get Linux ASAP


    Linux is relatively easy to get up and running and awesome fun. try any of these options

  • Download virtual box and install a 'virtual machine' to run linux on your mac (see above).
  • Buy a Raspberry Pi.
  • Create a bootable usb and install refind on your mac.
  • Take a friends old laptop and install linux on it from your live usb distro.

    If any of the above seems slightly daunting don't sweat it. Be confident and you may just surprise yourself at how much you can learn in such a short amount of time.

    Learn the command line


    The command line opens up the wonderfully powerful and creative world of unix. Push on.

  • Get the basics down with codecademy
  • Play with some books (this or this for eg)
  • Watch some youtube videos (this guy's good for webdev)
  • Learn a text editor (Try Vim. You already have it. Type 'vimtutor' in your terminal to get started)

    Play, Play, Play


    Do what gets you excited.

    I got a big kick out of learning ssh and then pranking my friends with commands like

    say hello friend, i am your computer. i think your friend two-gun is very handsome. Is he single?

    or

    open -a "Google Chrome" https://www.youtube.com/watch?v=X0uYvQ_aXKw

    Do what you find fun. Oh and check out Richard Stallman. He's a good egg.

    Enjoy.

    edit-0

    forgot iTerm link

    edit-1

    Wow! Gold! Ha! Thank you. This is so unexpected! I'd like to thank the academy, my agent, my mom...

u/majordyson · 29 pointsr/MachineLearning

Having done an MEng at Oxford where I dabbled in ML, the 3 key texts that came up as references in a lot of lectures were these:

Pattern Recognition and Machine Learning (Information Science and Statistics) (Information Science and Statistics) https://www.amazon.co.uk/dp/0387310738/ref=cm_sw_r_cp_apa_i_TZGnDb24TFV9M

Machine Learning: A Probabilistic Perspective (Adaptive Computation and Machine Learning Series) https://www.amazon.co.uk/dp/0262018020/ref=cm_sw_r_cp_apa_i_g1GnDb5VTRRP9

(Pretty sure Murphy was one of our lecturers actually?)

Bayesian Reasoning and Machine Learning https://www.amazon.co.uk/dp/0521518148/ref=cm_sw_r_cp_apa_i_81GnDbV7YQ2WJ

There were ofc others, and plenty of other sources and references too, but you can't go buying dozens of text books, not least cuz they would repeat the same things.
If you need some general maths reading too then pretty much all the useful (non specialist) maths we used for 4 years is all in this:
Advanced Engineering Mathematics https://www.amazon.co.uk/dp/0470646136/ref=cm_sw_r_cp_apa_i_B5GnDbNST8HZR

u/JonKalb · 28 pointsr/cpp

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

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

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

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

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

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

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

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

Be certain to get the 5th edition.

Of Scott's books only the latest is Modern.

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

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

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

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

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

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

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

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

Some library options:

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

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

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

Good luck and have fun!

u/soundcult · 26 pointsr/synthesizers

Hey! I can relate exactly to where your'e coming from. I, some years ago, decided I wanted to get into building synths. I ended up getting a job at a pedal company and have spent more time learning to build and repair pedals than synths. I don't work there anymore, but it gave me a lot of perspective into the field as we also made euro-rack modules.

First up: I don't want to scare you off from this, but just want to give you a realistic perspective so that you go into this knowing what you are getting into. Making synths is hard and it's expensive. As far as electronic projects go, making a synthesizer is up there on the list. I've repaired powerplant turbine controller circuitboards that were simpler than some of the synths I've owned. This isn't to say, "don't do it!" but, expect to learn a lot of fundamental and intermediate stuff before you ever have something like a fully-featured synth that you built in your hands.

It's also expensive. A cheap synth prototype is going to cost a couple hundred bucks, easy, while a more fully-featured prototype could cost into the thousands to produce, and that's just to build one working prototype. If you want to make a run of products you're going to need money up front, and not a small amount. So, just be prepared for that inevitability.

One final note is that my perspective is broad (digital and analog) but is rooted in analog electronics because that's where I started. This isn't the only path you can take to get to where you want to go but honestly in my opinion, even if you're going to go mostly digital later, you need to understand analog.

If you have never messed with electronics much before I highly recommend the Make: Electronics book. I'm a hands-on person and this was the most effective book I found that let me study electronics fundamentals the way I wanted to; by making stuff! No matter which direction you go on (digital, analog, hybrid, DSP, SID, etc) you're going to want to know how to pick the right resistor, or how to pop an LED into a circuit, and this book will teach you that.

Solid follow-up books from there are Make: More Electronics, Practical Electronics for Inventors, How To Diagnose and Fix Everything Electronic, and The Art of Electronics. All of these books are good books that touch on different concepts you will find useful, so I encourage you to look through them and decide for yourself which of these interests you.

Around this same time, I'd encourage you to start getting into kits. Honestly, before you build anything synth, I'm going to recommend you build some pedals. Effects pedals are fun and rewarding to build without being too hard. Start with a distortion circuit and work your way up from there. Once you can build a delay pedal without freaking out, move on to euro-rack kits, or other synth kits. While you're building these kits, don't just build them, play with the circuits! Try swapping components where you think you can, or adding features. One of my first kits was a distortion pedal with a single knob, but by the time I was done tweaking on it it had five knobs and two toggle switches!

Once you're feeling somewhat comfortable with electronics, then you can dive into the holy grail of analog synth design: Make: Analog Synthesizers this amazing book was written by the brilliant Ray Wilson who recently passed away. His life's goal was to bring the art of building analog synths into the hands of anyone who wanted to learn, and there is no better place to receive his great wisdom than this book. You should also check out his website Music From Outer Space along the way, but the book covers so much more than his website.

If you make through most or all of those resources you are going to be well-equipped to take on a career in synth-building! I'm personally still on that last step (trying to find the time to tackle Make: Analog Synthesizers) but hope within the next year or two to get that under my belt and start diving in deep myself. It's been a fun journey of learning and discovery and I wouldn't trade the skills I've gained in electronics for much.

Hope this helps, good luck!

u/professorlamp · 25 pointsr/learnprogramming

Sure, like most people, I started with Python. I didn't start on codeacademy though, I started on program arcade games.

By the way, I should mention that at the time, I was a night manager at a Hostel so I got LOADS of free time to myself, and then when I got home I had even more free time so there was lots of time to practice.
In the first 3-4 months I learnt the basics of functions and classes and how to use them. After that time had passed, I dug deeper and bought Learning Python and read that a lot. I learnt pretty quickly about the cool things about Python like list comprehensions, anonymous functions (Lambdas), operator overloading, all that stuff. By the way, that book is not a beginner's book, it's a book on pretty much everything about Python

I kept programming in my spare time, I made a lot of crappy things and gradually my code got cleaner and easier to maintain. I made things that interested me, like a MIDI parser, a reddit bot that converts images to ascii Python C#, a bruteforce directory scanner and some other stuff. As you can see, I was pretty busy. This is what's important. By all means, do Project Euler and participate in Daily Programmer but don't expect it to nail you a job. That stuff is useful, but a lot of those are just algorithms, not programs that will impress the person interviewing you (who might not be technical in the first place).

Eventually I just sort of 'got' Python, and decided to learn other languages that interested me. For some reason, that was C. Choosing to learn C was a really good choice but at the time I found it too difficult so I gravitated towards slightly newer languages like C#.

When I started to think my programs had some sort of quality to them I applied for jobs. I looked at job listings and if I saw a requirement that I didn't have i.e. (Version Control) then I'd learn it.
The caveat with learning Python at the time, was that it left me pretty useless (bare in mind I live in Wales in the UK, not uber-progressive,technology wise). The majority of the listings wanted PHP, or VB.NET (yes you read right)

Eventually I got my lucky break with a duo of awful businessmen, they didn't know what they wanted and I didn't know how to deliver, but I tried and I learnt a butt-load as I tried to make their product. Their product was an entire website (frontend, backend and DB) that was to start off small and grow internationally, and they wanted it in 10 weeks... Needless to say, they didn't keep me on (surprise surprise) but with that experience I managed to nail a decent job with other developers using a similar set of skills. By the way that job with businessmen was in VB.NET, not an awful language but why not C#?

The new job is good, I create backends for websites, create frontends from photoshop files that are handled by our designer and I also create plugins for an in-house CMS (Think Joomla and similar stuff). This current position is in PHP, it has it's quirks - naming standards vary wildly, the $, foreach loop is backwards in syntax, -> instead of ., and a bunch of other stuff, but it's easy to use.

As it stands currently, I'm working on trying out different architectural patterns. The good thing about the position I'm in is that it's lots of small projects so I can do something new with each new project. Maybe I'll try a different design pattern, maybe I'll go MVP over MVC, I'm pretty much free to learn and do as I want since there is no codebase (well there is a codebase, but I can still try out new methods) for a module that doesn't exist.

TL;DR

  • First 3-4 Months learnt basics (functions, classes, loops)
  • 5 Months onwards - Read 'Learning Python' and made programs
  • 6 months onwards - Tried out new languages
  • 8 Months on - basic SQL queries and commandline stuff
  • 12 months on - Applied for jobs, a lot.
  • 16 months on - Got first job with bad businessmen

  • 19 months on - Got second full time permanent position and it's fun


    Hopefully I answered what you wanted

u/mysticreddit · 25 pointsr/gamedev

First, I would buy

  • Game Engine Architecture, Second Edition

    What you do next is going to depend on what kind of game you are creating. Remember an game engine is only a tool used to solve a higher level problem: (Em)power a game

  • Without context you won't focus.

    Are you creating a 2D game? A 3D Game? Let's walk through an example. Pick a game to clone. Let's say we want to write a Minecraft-like game but use modern OpenGL. i.e. Using shaders. How would you start?

  • Create an OpenGL window -- windowed mode
  • Add fullscreen support (optional)
  • Load vertex and fragment shaders
  • Draw a triangle using the identity projection matrix and identity modelview matrix
  • Create a Matrix Class
  • Create a Matrix Stack
  • Add support for a Camera
  • Add keyboard support to move the camera, either absolute along the principal X,Y,Z axis or relative along the camera's DOF (Direction of Flight)
  • Add mouse free-look support
  • Draw a cube
  • Bind a texture
  • Draw a textured cube passing uv texture coordinates to your shader
  • Create an initial hard-coded world say 64x64x64 with only 2 block types: Air & Dirt
  • Iterate through the voxel (representation) tessellating into triangles (presentation)
  • Create a texture atlas and add basic font support
  • Create the start of a hud -- print off the camera's location using your font print()
  • Add picking (what block should be highlighted when the user mouses over it)
  • Add support so the player can add blocks --> update the voxel data, re-tesselate the triangles
  • Add support so the player can remove blocks --> update the voxel data, re-tesselate the triangles
  • Add support to render a 3D model (Static Mesh)
  • Import loading a static mesh from disk
  • :
  • Keep adding stuff that you want to see in your game.
  • Audio? Add player footsteps.
  • Multiplayer? Add networking.

    TL:DR; You should always be asking yourself this question:

  • What is the next thing I need to add in order to ship a semi-professional-level quality game?

    Hope this helps.

    Edit: Updated the philosophy.
u/cronin1024 · 25 pointsr/programming

Thank you all for your responses! I have compiled a list of books mentioned by at least three different people below. Since some books have abbreviations (SICP) or colloquial names (Dragon Book), not to mention the occasional omission of a starting "a" or "the" this was done by hand and as a result it may contain errors.

edit: This list is now books mentioned by at least three people (was two) and contains posts up to icepack's.

edit: Updated with links to Amazon.com. These are not affiliate - Amazon was picked because they provide the most uniform way to compare books.

edit: Updated up to redline6561


u/the_omega99 · 24 pointsr/programming

>Also what is this documentation? It's crazy expensive. Why would I want it?

It's the standard. Unless you're a compiler writer or a huge language nerd, you probably have no use for the standard.

You'd still want to learn from typical books, such as The C++ Programming Language (by the language's creator). You'd have to wait for them to be updated, though. The finished standard is very new, so you can expect a bit of a wait for many books to be updated. Granted, it's been a WIP for some time, and there's already some books available (such as Effective Modern C++) and compilers already support a number of the latest features (at least Clang and GCC do; Visual Studio tends to be behind).

u/drakonite · 23 pointsr/gamedev

To expand on what /u/LordNed said...

Your project is too big for a first project. Aim smaller than you think you should. Start with something like pong or tic tac toe, make that work, then do something slightly bigger.

I hate to break it to you, but most of what you learned in school is not going to be applicable to gamedev, and worse, you'll likely have a lot of bad habits you'll need to unlearn. The state of CS education in general is... terrible.

To answer a few of your questions:

  1. GLUT is outdated and terrible at this point. GLFW is a good choice. I personally find SDL a mess, but I've been told SDL2 isn't so bad. If you're directly writing your own rendering code, openGL is the way to go for that. BUT, you should strongly consider looking at existing game engines and libraries. There are a ton of them out there, ranging from full engines like UE4, Unity3D, and OGRE, to basic 2D rendering engines like cocos2d-x, and many in between.

  2. VisualStudio is the best debugger you're going to find, and learning how to debug well is one of the most important things you can learn. A lot of people are not fans of it's text editor and intellesense, so not everyone likes using it as their IDE.

  3. Game Engine Architecture is the best book I've found on the subject and is great as both an introduction to those new to game development, or as a booster for those wanting to be more than a junior programmer. I recommend this book for anyone getting started in game development. I recommend this book even if you're not writing engine tech, just to understand what is going on (and it covers more than just low level engine stuff). (I have more recommendations, but you should really start with this book)

  4. Shaders are a deep rabbit hole. When you eventually get to the point of needing to consider this, start simple. Always start simple with everything. I wouldn't recommend digging in to this type of thing unless you're doing it just because you feel like spending time learning and playing with shaders.

    Start simple!
u/mu71l473d · 23 pointsr/sysadmin
  • The Practice of System and Network Administration, Third Edition
  • UNIX and Linux System Administration Handbook, Fifth Edition
  • The Practice of Cloud System Administration: DevOps and SRE Practices for Web Services, Volume 2, First Edition
  • Windows Server 2016 Unleashed, First edition
u/moarthenfeeling · 22 pointsr/gamedev
  • Learning Lua and moving most of game logic in scripts. Iteration is a lot faster and there's a nice degree of separation between the game and the engine
  • Using entity-component-system approach. Gives nice structure to every aspect of game objects and makes it easy to combine them without code duplication
  • Getting rid of code duplication. DRY is incredibly important: it's easier to modify your code and make sure you don't add bugs by changing thing in one place and forgetting to change it in another place
  • Not using non-const globals. I was misled at first by people saying that having global World struct with some common stuff is ok, but I found out that it's a lot cleaner to pass arguments around and using as less references/pointers stored as members in another classes (e.g. if you have a Level class and want RenderingSystem to draw it, it's better to pass Level to draw function than having RenderingSystem store pointer to level). Not using globals help make code a lot less modular and do specific things instead of doing everything. Not to mention bugs that happen when you change some global's state in a function...
  • State Machines. Reusable states are the best for DRY, transition tables are great and readable (a lot more than giant switch/else-if statements everywhere)
  • Actions Lists. It's very easy to express sequences of actions with them without having lots of bools like isMovingToSomePlace, having enums or state machines to describe the state of cutscene/complex action.
  • Reading Game Programming Patterns and Game Engine Architecture. The amount of great information in these two books is just incredible.
  • Learning modern C++ and using it everywhere. The code is cleaner, safer, more readable. Using smart pointers = no memory leaks or who-owns-what confusion, std::algorithms are easier to write and read than some loops, using auto, etc.
u/dominusludi · 22 pointsr/gamedev

I find tutorials to be decent for learning how to perform simple tasks which don't require much variation or novel problem solving. As it turns out, making games is pretty much the exact opposite of that. I know from experience that it can be frustrating to find information on stuff like architecture and system design for games, but a lot of that is pretty much tribal knowledge, learned by professionals on the job or by hobbyists as they make projects.

I recommend reading articles on Gamasutra for more advanced topics, and I also recommend the book Game Engine Architecture by Jason Gregory. I think really the best thing you can do is try to do a more complicated project and as you run into problems you have trouble solving on your own, then research that specific topic. It's worth trying to solve the problem on your own first though, as while it may involve reinventing the wheel somewhat, it's also the best way to learn.

u/anastas · 22 pointsr/askscience

My main hobby is reading textbooks, so I decided to go beyond the scope of the question posed. I took a look at what I have on my shelves in order to recommend particularly good or standard books that I think could characterize large portions of an undergraduate degree and perhaps the beginnings of a graduate degree in the main fields that interest me, plus some personal favorites.

Neuroscience: Theoretical Neuroscience is a good book for the field of that name, though it does require background knowledge in neuroscience (for which, as others mentioned, Kandel's text is excellent, not to mention that it alone can cover the majority of an undergraduate degree in neuroscience if corequisite classes such as biology and chemistry are momentarily ignored) and in differential equations. Neurobiology of Learning and Memory and Cognitive Neuroscience and Neuropsychology were used in my classes on cognition and learning/memory and I enjoyed both; though they tend to choose breadth over depth, all references are research papers and thus one can easily choose to go more in depth in any relevant topics by consulting these books' bibliographies.

General chemistry, organic chemistry/synthesis: I liked Linus Pauling's General Chemistry more than whatever my school gave us for general chemistry. I liked this undergraduate organic chemistry book, though I should say that I have little exposure to other organic chemistry books, and I found Protective Groups in Organic Synthesis to be very informative and useful. Unfortunately, I didn't have time to take instrumental/analytical/inorganic/physical chemistry and so have no idea what to recommend there.

Biochemistry: Lehninger is the standard text, though it's rather expensive. I have limited exposure here.

Mathematics: When I was younger (i.e. before having learned calculus), I found the four-volume The World of Mathematics great for introducing me to a lot of new concepts and branches of mathematics and for inspiring interest; I would strongly recommend this collection to anyone interested in mathematics and especially to people considering choosing to major in math as an undergrad. I found the trio of Spivak's Calculus (which Amazon says is now unfortunately out of print), Stewart's Calculus (standard text), and Kline's Calculus: An Intuitive and Physical Approach to be a good combination of rigor, practical application, and physical intuition, respectively, for calculus. My school used Marsden and Hoffman's Elementary Classical Analysis for introductory analysis (which is the field that develops and proves the calculus taught in high school), but I liked Rudin's Principles of Mathematical Analysis (nicknamed "Baby Rudin") better. I haven't worked my way though Munkres' Topology yet, but it's great so far and is often recommended as a standard beginning toplogy text. I haven't found books on differential equations or on linear algebra that I've really liked. I randomly came across Quine's Set Theory and its Logic, which I thought was an excellent introduction to set theory. Russell and Whitehead's Principia Mathematica is a very famous text, but I haven't gotten hold of a copy yet. Lang's Algebra is an excellent abstract algebra textbook, though it's rather sophisticated and I've gotten through only a small portion of it as I don't plan on getting a PhD in that subject.

Computer Science: For artificial intelligence and related areas, Russell and Norvig's Artificial Intelligence: A Modern Approach's text is a standard and good text, and I also liked Introduction to Information Retrieval (which is available online by chapter and entirely). For processor design, I found Computer Organization and Design to be a good introduction. I don't have any recommendations for specific programming languages as I find self-teaching to be most important there, nor do I know of any data structures books that I found to be memorable (not that I've really looked, given the wealth of information online). Knuth's The Art of Computer Programming is considered to be a gold standard text for algorithms, but I haven't secured a copy yet.

Physics: For basic undergraduate physics (mechanics, e&m, and a smattering of other subjects), I liked Fundamentals of Physics. I liked Rindler's Essential Relativity and Messiah's Quantum Mechanics much better than whatever books my school used. I appreciated the exposition and style of Rindler's text. I understand that some of the later chapters of Messiah's text are now obsolete, but the rest of the book is good enough for you to not need to reference many other books. I have little exposure to books on other areas of physics and am sure that there are many others in this subreddit that can give excellent recommendations.

Other: I liked Early Theories of the Universe to be good light historical reading. I also think that everyone should read Kuhn's The Structure of Scientific Revolutions.

u/biochromatic · 22 pointsr/Futurology

> instant access to knowledge and infinite diversions ought to change brain connections

I just want to give a shoutout the The Shallows. It's a book that goes into detail on how new technology changes the way people think (including changing the connections in brains as you mentioned).

> Change mustn't mean in a bad way though.

This is a frequent topic in the book as well. There are things that people lose when they adopt new technologies, and there are things that people gain. Basically all technological advances have caused humanity to both lose something and gain something. For example, our ancestors may have been better at remembering things or had a better sense of direction compared to us. We would be better at assimilating many facts in a short period of time compared to our ancestors though.

u/phao · 21 pointsr/learnprogramming

If you have the time, learn scheme. The scheme books I've seen are extremely well written and go way beyond simply talking about the language.

You could start at SICP, but it doesn't assume previous programming knowledge. It's a beginner's book, but don't take this as "the book is easy". Try it out and see what you think about it.

Another one is The Little Schemer. This one is a book on recursion. It uses scheme too. It's probably the best programming book I've read. I never stopped to think about a ranking, but thinking on the spot, this would be the 1st.

http://www.amazon.com/The-Little-Schemer-4th-Edition/dp/0262560992/

SICP is freely available: http://mitpress.mit.edu/sicp/ with video lectures from a course (based on the book; or the book is based on the course) given at MIT http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/

This one is also pretty good. http://www.ccs.neu.edu/home/dorai/t-y-scheme/t-y-scheme.html

There are other scheme books out there. There is, for example, a "How to Design Programs" http://htdp.org/, which also has a course based on it: https://www.coursera.org/course/programdesign -- but I've never read this book or taken this course.

u/Philipp · 20 pointsr/Futurology

Here's a fantastic book on the subject: Superintelligence.

u/Jank1 · 20 pointsr/networking

I would also like to take the time to plug a few resources, if I may, that have greatly assisted me throughout my career.

  1. Of course, Cisco Press. Wendell Odom especially.
  2. Non-Cisco Press, Todd Lamlle's CCNA book is great!
  3. CBT Nuggets!! Jeremy Cioara and Keith Barker.
  4. Tech Exams Forums!! For answers to your questions regarding certification, study material, etc, from a variety of vendor certs. Or, to just read motivating success stories!!
  5. Internetworking Experts (INE!) That link should direct you to their free CCNA video course. If that doesn't work for you, simply register an account with them and search for the CCNA video course.
  6. Thomas Limoncelli's The Practice of Systems and Network Administration
  7. Gary A Donahue's Network Warrior
  8. Jeff Doyle's CCIE Professional Development Routing TCP/IP Vol. 1 or 2
  9. Douglas E. Comer's Internetworking with TCP/IP
  10. GNS3!! Free Cisco Router and ASA Emulation!! Just make sure you have access to Cisco IOS software!
  11. Andrew S. Tanenbaum's Computer Networks.
  12. Jeremy Stretch and PacketLife!! Also, Jeremy's network Cheat Sheets!
  13. Firewall.cx!!
  14. Cisco's Command Lookup Tool! Requires login, but nonetheless, a great resource for your Cisco engineers when you just NEED to know how the hell a particular command works.
  15. Priscilla Oppenheimer's Top-Down Network Design
  16. I've heard the folks at /r/networking are pretty legit.
u/delarhi · 20 pointsr/cpp

I guess I'm going to go ahead and be "that guy".

Don't aim to work with a specific language.


I feel you should reframe your goal to be a "problem solver" that knows how to pick and use various tools to solve a problem. C++ may be one of those tools. Maybe C. Maybe Python. Maybe Java. You want to develop your skill set to be flexible enough to adopt the right tool for a job. Now, that's not to say you can't be a language expert. Language experts are very valuable and becoming one is a perfectly reasonable goal. That said, I think you'll find that you have many more opportunities when you remain flexible.

With that out of the way, I would say good next steps for continued C++ mastery are to read and understand Scott Meyers' excellent books:

u/DucBlangis · 20 pointsr/netsecstudents

Here is a "curriculum" of sorts I would suggest, as it's fairly close to how I learned:

  1. Programming. Definitely learn "C" first as all of the Exploitation and Assembly courses below assume you know C: The bible is pretty much Dennis Richie and Kernighan's "The C Programming Language", and here is the .pdf (this book is from 1988, I don't think anyone would mind). I actually prefer Kochan's book "Programming in C" which is very beginner freindly and was written in 2004 rather than 1988 making the language a little more "up to date" and accessible. There are plenty of "C Programming" tutorials on YouTube that you can use in conjunction with either of the aforementioned books as well. After learning C than you can try out some other languages. I personally suggest Python as it is very beginner friendly and is well documented. Ruby isn't a bad choice either.

  2. Architecture and Computer basics:
    Generally you'll probably want to look into IA-32 and the best starting point is the Intel Architecture manual itself, the .pdf can be found here (pdf link).
    Because of the depth of that .pdf I would suggest using it mainly as a reference guide while studying "Computer Systems: A Programmers Perspective" and "Secrets of Reverse Engineering".

  3. Operating Systems: Choose which you want to dig into: Linux or Windows, and put the effort into one of them, you can come back to the other later. I would probably suggest Linux unless you are planning on specializing in Malware Analysis, in which case I would suggest Windows. Linux: No Starch's "How Linux Works" is a great beginner resource as is their "Linux Command Line" book. I would also check out "Understanding the Linux Kernel" (that's a .pdf link). For Windows you can follow the Windows Programming wiki here or you can buy the book "Windows System Programming". The Windows Internals books are generally highly regarded, I didn't learn from them I use them more as a reference so I an't really speak to how well they would teach a "beginner".

  4. Assembly: You can't do much better than OpenSecurityTraining's "Introductory Intel x86: Architecture, Assembly, Applications, & Alliteration" class lectures from Xeno Kovah, found here. The book "Secrets of Reverse Engineering" has a very beginner friendly introduction to Assembly as does "Hacking: The Art of Exploitation".

  5. Exploitation: OpenSecurityTraining also has a great video series for Introduction to Exploits. "Hacking: The Art of Exploitation" is a really, really good book that is completely self-contained and will walk you through the basics of assembly. The author does introduce you to C and some basic principles of Linux but I would definitely suggest learning the basics of C and Linux command line first as his teaching style is pretty "hard and fast".

  6. Specialized fields such as Cryptology and Malware Analysis.


    Of course if you just want to do "pentesting/vuln assessment" in which you rely more on toolsets (for example, Nmap>Nessus>Metasploit) structured around a methodology/framework than you may want to look into one of the PACKT books on Kali or backtrack, get familiar with the tools you will use such as Nmap and Wireshark, and learn basic Networking (a simple CompTIA Networking+ book will be a good enough start). I personally did not go this route nor would I recommend it as it generally shys away from the foundations and seems to me to be settling for becoming comfortable with tools that abstract you from the real "meat" of exploitation and all the things that make NetSec great, fun and challenging in the first place. But everyone is different and it's really more of a personal choice. (By the way, I'm not suggesting this is "lame" or anything, it was just not for me.)

    *edited a name out





u/cybrbeast · 19 pointsr/Futurology

This was originally posted as an image but got deleted for IMO in this case, the irrelevant reason that picture posts are not allowed, though this was all about the text. We had an interesting discussion going: http://www.reddit.com/r/Futurology/comments/2mh0y1/elon_musks_deleted_edge_comment_from_yesterday_on/

I'll just post my relevant contributions to the original to maybe get things started.



---------------------------

And it's not like he's saying this based on his opinion after a thorough study online like you or I could do. No, he has access to the real state of the art:

> Musk was an early investor in AI firm DeepMind, which was later acquired by Google, and in March made an investment San Francisco-based Vicarious, another company working to improve machine intelligence.

> Speaking to US news channel CNBC, Musk explained that his investments were, "not from the standpoint of actually trying to make any investment return… I like to just keep an eye on what's going on with artificial intelligence. I think there is potentially a dangerous outcome there."

*Also I love it that Elon isn't afraid to speak his mind like this. I think it might well be PR or the boards of his companies that reigned him in here. Also in television interviews he is so open and honest, too bad he didn't speak those words there.

----------------------------

I'm currently reading Superintelligence which is mentioned in the article and by Musk. One of the ways he describes an unstoppable scenario is that the AI seems to function perfectly and is super friendly and helpful.

However on the side it's developing micro-factories which can assemble from a specifically coded string of DNA (this is already possible to a limited extent). These factories then use their coded instructions to multiply and spread and then start building enormous amount of nanobots.

Once critical mass and spread is reached they could instantly wipe out humanity through some kind of poison/infection. The AI isn't physical, but the only thing it needs in this case is to place an order to a DNA printing service (they exist) and then mail it to someone it has manipulated into adding water, nutrients, and releasing the DNA nanofactory.

If the AI explodes in intelligence as predicted in some scenarios this could be set up within weeks/months of it becoming aware. We would have nearly no chance of catching this in time. Bostrom gives the caveat that this was only a viable scenario he could dream up, the super intelligence should by definition be able to make much more ingenious methods.

u/chronographer · 19 pointsr/Foodforthought

For background, I understand that Elon's views are informed by this book (among others, no doubt): Nick Bostrom: Superintelligence.

It's a dense read, but talks about AI and how it might emerge and behave. (I haven't finished the book, so can't say more than that).

Edit: fixed up punctuation from mobile posting. See below for more detail.

u/Jerzeem · 19 pointsr/todayilearned

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

u/estiquaatzi · 19 pointsr/ItalyInformatica

La scelta del linguaggio di programmazione dipende molto dal contesto e dalla applicazione specifica. R é ottimo per l'analisi statistica, ma appunto si adatta solo a quello.

Per iniziare, mantenendo una forte connessione con quello che desideri studiare, ti suggerisco python.

Leggi "Python Data Science Handbook: Essential Tools for Working with Data" e "Learning Python"

u/Turilas · 19 pointsr/gamedev

Might as well start this with a book for programmers despite not having fully read it but it has given me a lot of insight on many things about game engines and how things should be done.

Game Engine Architecture by Jason Gregory


u/my_password_is______ · 17 pointsr/gamedev

> do I need to learn one of Unreal/Unity to work for a game company?

no

build something in C or C++ or even java

have you read this ?

https://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010/

or

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

have you learned opengl https://learnopengl.com/

have you read any of the books suggested here

https://www.reddit.com/r/gamedev/comments/5te5t5/which_books_would_you_recommend_for_game/

https://www.reddit.com/r/gamedev/comments/63sxr3/what_books_are_in_your_game_dev_library/

are you familiar with the concepts here

http://www.gameprogrammingpatterns.com/game-loop.html

https://gafferongames.com/post/fix_your_timestep/

http://www.koonsolo.com/news/dewitters-gameloop/

you might want to consider watching his videos

https://www.youtube.com/playlist?list=PLrOv9FMX8xJE8NgepZR1etrsU63fDDGxO

^ those are all C++

or the first 43 videos of here
https://www.youtube.com/user/handmadeheroarchive/videos?flow=grid&view=0&sort=da

videos "Handmade Hero Day 001 - Setting Up the Windows Build" through "Handmade Hero Day 043 - The Equations of Motion"

^ those are all in C

the important thing is to just start making something

learn, develop skills, and build a portfolio

read the story of Stardew Valley
https://www.gq.com/story/stardew-valley-eric-barone-profile

^ no unity, no unreal .. just a CS grad teaching himself to make games


u/Ken_Obiwan · 17 pointsr/MachineLearning

>The swipe at Andrew Ng is off the mark and tasteless

Meh, it's on about the same level he brought the conversation to. (Oxford professor writes a carefully-argued 350-page book; Ng apparently doesn't see the need to read it and dismisses news coverage of the book with a vague analogy.)

>Yudkowsky and the LessWrong cult have contributed nothing tangible to the fields of AI and machine learning

Well, at least it's consistent with their position that making public contributions to the field of AI may not actually be a good idea :)

It's not like Yudkowsky is somehow unaware that not having an active AI project makes him uncool, here's him writing about the point at which he realized his approach to AI was wrong and he needed to focus on safety:

>And I knew I had to finally update. To actually change what I planned to do, to change what I was doing now, to do something different instead.

>I knew I had to stop.

>Halt, melt, and catch fire.

>Say, "I'm not ready." Say, "I don't know how to do this yet."

>These are terribly difficult words to say, in the field of AGI. Both the lay audience and your fellow AGI researchers are interested in code, projects with programmers in play. Failing that, they may give you some credit for saying, "I'm ready to write code, just give me the funding."

>Say, "I'm not ready to write code," and your status drops like a depleted uranium balloon.

And if you wanna go the ad hominem route (referring to Less Wrong as a "cult" despite the fact that virtually no one who's interacted with the community in real life seems to think it's a cult), I'll leave you with this ad hominem attack on mainstream AI researchers from Upton Sinclair: "It is difficult to get a man to understand something, when his salary depends on his not understanding it."

u/AlSweigart · 17 pointsr/Python

I'm actually writing a Python book for non-programmers on this exact topic. Automate the Boring Stuff with Python

It will be free to download under a Creative Commons license when published. You can read the description (and later the book) from here: http://automatetheboringstuff.com/

u/Cohesionless · 17 pointsr/cscareerquestions

The resource seems very extensive such that it should suffice you plenty to be a good software engineer. I hope you don't get exhausted from it. I understand that some people can "hack" the technical interview process by memorizing a plethora of computer science and software engineering knowledge, but I hope you pay great attention to the important theoretical topics.

If you want a list of books to read over the summer to build a strong computer science and software engineering foundation, then I recommend to read the following:

  • Introduction to Algorithms, 3rd Edition: https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844. A lot of people do not like this classic book because it is very theoretical, very mathematical, and very abstract, but I think that is its greatest strength. I find a lot of algorithms books either focus too much about how to implement an algorithm in a certain language or it underplays the theoretical foundation of the algorithm such that their readers can only recite the algorithms to their interviewers. This book forced me to think algorithmically to be able to design my own algorithms from all the techniques and concepts learned to solve very diverse problems.

  • Design Patterns: Elements of Reusable Object-Oriented Software, 1st Edition: https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/. This is the original book on object-oriented design patterns. There are other more accessible books to read for this topic, but this is a classic. I don't mind if you replace this book with another.

  • Clean Code: A Handbook of Agile Software Craftsmanship, 1st Edition: https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882. This book is the classic book that teaches software engineer how to write clean code. A lot of best practices in software engineering is derived from this book.

  • Java Concurrency in Practice, 1st Edition: https://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601. As a software engineer, you need to understand concurrent programming. These days there are various great concurrency abstractions, but I believe everyone should know how to use low-level threads and locks.

  • The Architecture of Open Source Applications: http://aosabook.org/en/index.html. This website features 4 volumes of books available to purchase or to read online for free. It's content focuses on over 75 case studies of widely used open-source projects often written by the creators of said project about the design decisions and the like that went into creating their popular projects. It is inspired by this statement: "Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters."

  • Patterns of Enterprise Application Architecture, 1st Edition: https://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420/. This is a good read to start learning how to architect large applications.

    The general theme of this list of books is to teach a hierarchy of abstract solutions, techniques, patterns, heuristics, and advice which can be applied to all fields in software engineering to solve a wide variety of problems. I believe a great software engineer should never be blocked by the availability of tools. Tools come and go, so I hope software engineers have strong problem solving skills, trained in computer science theory, to be the person who can create the next big tools to solve their problems. Nonetheless, a software engineer should not reinvent the wheel by recreating solutions to well-solved problems, but I think a great software engineer can be the person to invent the wheel when problems are not well-solved by the industry.

    P.S. It's also a lot of fun being able to create the tools everyone uses; I had a lot of fun by implementing Promises and Futures for a programming language or writing my own implementation of Cassandra, a distributed database.
u/pescetto · 17 pointsr/networking

The Todd Lammle book for CCNA study was probably the easiest intro into networking I've read.

CCNA Routing and Switching Complete Study Guide: Exam 100-105, Exam 200-105, Exam 200-125 https://www.amazon.com/dp/1119288282/ref=cm_sw_r_cp_api_xA.5yb5VFATQB

u/MojarraMuncher · 16 pointsr/ccna

I highly recommend self-study. In my experience, classes are only as effective as its least-knowledgeable members. The classes I have taken [Optional CCNA courses from a CCIE Security at my old job] in the past meant a lot of waiting on slower learners to grasp concepts before moving further in the material. Eventually I was self-studying the later material as the class was working to catch up.

Most people use at least 3 or 4 study sources ranging from video to books. And they usually lab, either with real equipment or with Packet Tracer. No point buying a lab just for ICND1.

Here is my copypasta

First, don't take the composite. Do you like money? You will probably fail at least once. I failed my first time. Goodbye money. Goooodbye pride. Helloooo shame. Take the ICND1 and then ICND2.

Here is the current blueprint for ICND1 It is meant to be followed from top to bottom as the first topics are fundamentals, working its way down to switching and then routing.


I recommend getting a SafariBooks subscription. It even has a free trial. The Livelessons videos are over $100 retail and the Odom and Lamlee books are another $100. For $39 a month I think SafariBooks is the best value.

Then on SafariBooks, search for CCNA Livelessons videos [specifically "CCENT ICND1 100-105"] on ICND1. Kevin Wallace goes through the blueprint from top to bottom and I just think he is a very focused and excellent instructor. He has another video series there called "Learning Path: CCNA Routing and Switching" which goes off the blueprint slightly into a deeper understanding of networking fundamentals. Disclosure, I have not watched the new exam videos since the exam was revamped last year, but I did watch his videos from the last exam version.

Supplement your learning by reading the Odom and Lammle books on ICND1 which are also available on Safaribooks. You can even download the books for offline reading on your phone or tablet. Some like Odom's official cert guide more but it is dry material that follows the blueprint. Lammle is a little more 'colorful' but I don't like his prose and how he gets off topic with real-world scenarios. There are also some cram guides that have quizzes and good commands to know. Again, all of these are available on SafariBooks. ^I ^am ^not ^a ^shill ^for ^SafariBooks ^but ^I ^use ^it ^almost ^everyday.

For additional studying you can get some pre-made Anki or Quizlet decks. They both have mobile apps [Anki is not free for iOS. Quizlet is] and are super helpful when you don't have the ability to open a large book or watch videos...or don't have the attention span to re-read a chapter. Quizlet just added the ability to test and game on flashcards, which is something it didn't have before that Anki did have. Anki requires a program to install to study on desktop, while Quizlet uses an in-browser interface. If you can't get Anki installed on a work computer, Quizlet is a fine substitute.


When you want to touch 'real' equipment you can download Packet Tracer for free from Cisco Net Academy. Dan's Courses has step-by-step Packet Tracer labs and solutions. Labbing is essential but you definitely don't need a physical lab for CCNA and especially ICDN1. You eventually can graduate to GNS3 but you should only need PT for ICDN1 and probably ICDN2.


Lots of people like CBT Nuggets but I find that since they don't follow the blueprint very well and the presenter Jeremy Cioara gets off topic [I.E. excited] and can throw off focus of the subject matter. Also at something like $100 a month [legally], it is expensive for what you get in return, which is one video series with some large holes in the knowledge you need to pass.

Hope this helps.

u/shinigamiyuk · 16 pointsr/learnpython

Python crash course is excellent and the 3 books I would recommend for anyone just starting with python would be:


Python Crash Course (I like this book but I think it can be skipped)

How to Think Like a Computer Scientist

Problem Solving with Algorithms and Data Structures using Python

If you are more into theory I would choose:
Learning Python, 5th Edition

u/acid_wrappers · 16 pointsr/datascience

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




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

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

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

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

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

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

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

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

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

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

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

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

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

u/[deleted] · 16 pointsr/todayilearned

Not to be a dick, but when you dive into the possible consequences of machine learning & AI, some facial detection software is pretty mundane when compared to other possible outcomes.

The book Superintelligence turned me into a luddite in terms of AI.

u/gingenhagen · 15 pointsr/ruby

The Little Schemer will teach you to truly think recursively. It teaches via a continuous series of question and answer.

u/mrstratofish · 15 pointsr/gamedev

For more by Jason Gregory, he wrote the excellent Game Engine Architecture which covers a few of these bits in detail as well.

Not sure I like the no producer thing personally. Isn't their job to make sure you can just get on with the skilled job you are being paid for while they take care of (read: delegate to minions...) the day-to-day generic tasks that would otherwise bog you down?

u/tracekill · 15 pointsr/books

Nicholas Carr's book The Shallows talks about this at length. It's backed up by some pretty solid science and does an excellent job tracing the history of the written word, and its relationship with our physiology and consciousness, up to the modern age. The book is biased by the "Baby Boomers are inherently less vapid than Millennials" mentality but it's definitely worth a read.

u/gremy0 · 14 pointsr/ProgrammerHumor

I found some of the more abstract ways to introduce functional programming to be good fun. Like the Clojure Koans or The Little Schemer

u/kalmar · 14 pointsr/programming

Haskell does throw a little too much at you at once, I agree. Another option though would be to go straight with ML, using The Little MLer. It's like The Little Schemer but, shockingly, in (S)ML. It'll get you enough of types and recursion and consing and so on that Haskell will "only" be adding laziness, type classes and monads. At the same time, I think it's a very accessible book, and it mentions food a lot.

Or perhaps even learn Scheme, then ML, then Haskell. Make your life easier at each stage, and learn more languages to boot.

u/TwinfoxDev · 14 pointsr/gamedesign

There are quite a few good book on this topic, that I would recommend, like Jesse Schell's The Art of Game Design, or Justin Gary's Think like a Game Designer. These books describe the process way better than I ever could, but I'll try anyway.From my personal experience I always start from an idea (hey, wouldn't moving fortresses be awesome?), then I start to think about what exactly fascinates me about that idea. Then I try to capture the awsomeness in game mechanics. From there I create a list of what has to be done to test the mechanics, do that (plus some eye-candy because I'm a visual person) so I have something to test. When I have something to test, I try to analyze what doesn't work and fix that (not in code, but in paper). And start the process again.

So basically once I have an idea, it's this loop of creating/refining mechanics, implementing them, then testing and analyzing them. Then I go back to refining.

If you often suffer from scope creep, there are several methods to battle that. Like setting yourself a deadline, always cutting a mechanic when you add a new one, etc. Don't be afraid to throw something out (it's not lost you can use the idea/mechanic in another project). A game is way better when it knows what it wants to be and throws away everything that doesn't contribute to that core experience (I mean they could add RPG elements to Call Of Duty Campaigns, but they don't because that's not what the game is about).

Also if you don't like your code, that's 100% normal. when you look back at something you've made, you'll always be able to spot something that you would do differently now. That's because you've learned new things since you started . I'm programming for nearly a decade now, and when I look back at code that I've written a few months ago I'm always like "Eww, why would anyone write code like that?". So don't be afraid to make mistakes and don't continuously refactor code. Make something, learn from it and do it better next time.

I hope that helps!

​

EDIT: spelling

u/karsithe · 14 pointsr/gamedev

I'd recommend Game Engine Architecture.

However I wouldn't worry so much about messing up. If this is a solo project then it's a great learning experience precisely because you have room to learn from your own mistakes-I know there's a classic programming quote which sums this up perfectly but I can't recall it just now.

Things change. Expect to refactor your code and rework your design later, and aim to make it easy on yourself when that happens rather than having a perfect but inflexible solution first time.

u/bridgesro · 13 pointsr/learnprogramming

The best non-language-specific programming book I've read by far is Think Like A Programmer. It uses C for examples, but I wrote them using Python as I went through it. It teaches you problem-solving, which is all programming really is.

For beginners picking a new language, I recommend Automate The Boring Stuff for Python. Python is a great language for beginners, and this book will teach you Python and how to use it for practical tasks. The author has also made the book available for free online - though I picked up a physical copy to help support the guy. It's worth it :)

u/sfltech · 13 pointsr/redhat

I've mentored several Junior linux team members and I always recommend : https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554

While not RH specific, it is has a wealth of information on Linux in general and serves as a good reference.

u/steamywords · 13 pointsr/Futurology

This does nothing to address the difficulty of the control issue. He's basically just saying we'll figure it out before we get AI, don't worry about it.

SuperIntelligence actually spells out why control is so hard. None of those points are touched even generally. He's Director of Engineer at Google, which actually created an AI ethics board because an AI company they bought was afraid that the tech could lead to the end of the human species, yet none of that is even briefly mentioned.

There is very good reason to be cautious around developing an intellect that can match ours, never mind rapidly exceed it. I don't see the necessity for repeated calls to let our guard down.

u/oddible · 13 pointsr/gamedesign

For design, get the combo of Jesse Schell's Book of Lenses and Deck of Lenses.

For dev get Nystrom's Game Programming Patterns

u/hell_onn_wheel · 13 pointsr/Python

Good on you for looking to grow yourself as a professional! The best folks I've worked with are still working on professional development, even 10-20 years in to their profession.

Programming languages can be thought of as tools. Python, say, is a screwdriver. You can learn everything there is about screwdrivers, but this only gets you so far.

To build something you need a good blueprint. For this you can study objected oriented design (OOD) and programming (OOP). Once you have the basics, take a look at design patterns like the Gang of Four. This book is a good resource to learn about much of the above

What parts do you specify for your blueprint? How do they go together? Study up on abstract data types (ADTs) and algorithms that manipulate those data types. This is the definitive book on algorithms, it does take some work to get through it, but it is worth the work. (Side note, this is the book Google expects you to master before interviewing)

How do you run your code? You may want to study general operating system concepts if you want to know how your code interacts with the system on which it is running. Want to go even deeper with code performance? Take a look at computer architecture Another topic that should be covered is computer networking, as many applications these days don't work without a network.

What are some good practices to follow while writing your code? Two books that are widely recommended are Code Complete and Pragmatic Programmer. Though they cover a very wide range (everything from organizational hacks to unit testing to user design) of topics, it wouldn't hurt to check out Code Complete at the least, as it gives great tips on organizing functions and classes, modules and programs.

All these techniques and technologies are just bits and pieces you put together with your programming language. You'll likely need to learn about other tools, other languages, debuggers and linters and optimizers, the list is endless. What helps light the path ahead is finding a mentor, someone that is well steeped in the craft, and is willing to show you how they work. This is best done in person, watching someone design and code. Also spend some time reading the code of others (GitHub is a great place for this) and interacting with them on public mailing lists and IRC channels. I hang out on Hacker News to hear about the latest tools and technologies (many posts to /r/programming come from Hacker News). See if there are any local programming clubs or talks that you can join, it'd be a great forum to find yourself a mentor.

Lots of stuff here, happy to answer questions, but hope it's enough to get you started. Oh, yeah, the books, they're expensive but hopefully you can get your boss to buy them for you. It's in his/her best interest, as well as yours!

u/sbsmith · 12 pointsr/gamedev

Hi PizzaPartify,
I believe that different companies/teams will place emphasis on different skills. When I was helping to hire software engineers for EA's motion capture studio, I liked to see candidates who showed a strong aptitude for engineering code to be maintainable. For me, this meant a familiarity with design patterns and software development processes (like Test Driven Development or Extreme Programming). In my department, much of our code was in C++ and Python. However, other departments would use languages like Java, C# or ActionScript - depending on the project.

It would be helpful to know what role you are applying to.

To answer your specific questions:

  1. If you're already familiar with C++, I would highly recommend reading Effective C++ by Scott Meyers (http://www.amazon.ca/Effective-Specific-Improve-Programs-Designs/dp/0321334876). Every C++ developer should read this.

    Regardless of the language you're working in, I would also recommend Design Patterns by the gang of four (http://www.amazon.ca/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612).

    A game-specific recommendation is Game Engine Architecture by Jason Gregory (http://www.amazon.ca/Game-Engine-Architecture-Jason-Gregory/dp/1568814135). It doesn't matter if you intend to write an engine or not, it is immensely helpful to understand how they work.

    I own all of the Game Programming Gems books but use them more as a reference library. The books above will be more helpful right now.

  2. I worked with Unity only briefly to prototype a game, so I can't really comment here.

  3. This is tricky. I think you will need to find a passion project in C++ so that you will just naturally learn more about the language. And speaking of passion: you need to really want the job you are applying for. I have seen qualified developers miss out on jobs because you could tell they were just looking for anything (rather than really being enthusiastic about the position).

    I hope that helps.
u/toodledoo · 12 pointsr/programming

Java Concurrency in Practice by Brian Goetz is a very good book to get started on the concurrency package. I would recommend reading through it atleast once.

u/admorobo · 12 pointsr/getdisciplined

For anyone interested in the book, it's actually called The Shallows: What The Internet is Doing to our Brains. I read it last year and it made me realize how much of my media consumption is essentially wasted on things like Facebook and yes, even Reddit. I resolved to read more and use the internet less, which has definitely resulted in some good habits forming and some bad ones being broken. I started a reading challenge on Goodreads in January with a goal of reading 30 books this year, and I'm already nearly halfway there in Mid-March.

I personally need to read from paper books. Kindle screens, even the paperink ones, still distract my brain. I need to feel the weight of the book, the flip of the page. Reading for me is both a tactile and intellectual experience.

u/IQBoosterShot · 12 pointsr/books

Ironically, your solution may lay within the pages of The Shallows: What the Internet Is Doing to Our Brains by Nicholas Carr. The author describes how his undying love for books seemed to fade, how picking up and getting into a book seemed much more difficult than before and how distracted he felt he'd become.

This book resonated with me. I am a book lover yet I found myself losing my desire to spend time with a book. I would pick one up and I'd feel my mind start to wander or I'd feel fidgety before the end of a page.

There is a solution. I restructured my approach to the use of the internet and I'm glad to say that I'm reading like a champ again. All the joy and fun is back.

u/ryzic · 12 pointsr/electronics

Sparkfun has some great tutorials, but they might be a little advanced for your level. I suggest trying to find a kit that does something interesting (adafruit and sparkfun have some of these). When you run into something you don't know, google it.

Also, BUY THIS BOOK!

u/Nuclear-Cheese · 12 pointsr/gamedev

I think Game Engine Architecture by Jason Gregory (Naughty Dogs Lead Programmer) is a really good book for Game Devs working in programming. Not sure how it compares to 3D Game engine Design since I haven't read that. But the book by Gregory is really good and covers a lot in depth.

u/EraZ3712 · 12 pointsr/cpp_questions

Books are still the best way to learn C++! C++ Primer, 5th Ed. covers all the basics of C++11 from functions and standard library usage to OOP and templates. Effective C++ reinforces good practices and idiomatic C++ that, despite being written for C++98, is just as relevent today as it was then, some of its contents even more so than ever before. Then Effective Modern C++ then does the same for C++11 and C++14 features, building on top of what C++ Primer covers about C++11 and introducing the subtle changes brought about by C++14. This is my primary recommendation for learning modern C++ from the ground up.

But we live in the internet age! Best make use of it! So many wonderful talks from conferences such as CppCon, C++Now, Meeting C++, ACCU and Code::Dive are all available for public viewing. With regards to modern C++, Herb Sutter's CppCon 2014 Back to the Basics! Essentials of Modern C++ Style and CppCon 2016 Leak-Freedom in C++... By Default are great videos to watch. For more specific topics, here is a list of videos that I've seen and personally found engaging, educational, and worth my time to watch (multiple times!):

  • The Exception Situation for exception handling,
  • rand() Considered Harmful and What C++ Programmers Need to Know about Header <random> for random number generation,
  • Everything You Ever Wanted to Know About Move Semantic (and then some) for move semantics (by one of the authors of the proposal that introduced it!),
  • Modern Template Metaprogramming: A Compendium for template metaprogramming,
  • Lambdas from First Principles: A Whirlwind Tour of C++ for lambda expressions (this one is very good!), and
  • Type Deduction and Why You Care for auto and decltype(auto) (I miss Scott :'( ).

    There are also shows such as CppChat and CppCast where interesting events, projects, papers, and people related to C++ are brought up and discussed. There are so many interesting blogs to read!

    And there is always people on IRC (##c++, ##c++-basic, and ##c++-general) and the Cpplang Slack Channel for live updates, discussions, debates, questions, answers, and/or just plain fun with a group of people that ranges from complete noobs who are learning the basics, to committee members and library authors whose names are known across the community. If you ever have a question or need help, these are the places to go and ask (/r/cpp_questions is nice too! :P ).

    And finally, links to videos, blog posts, articles, papers, interesting Stack Overflow questions, almost everything mentioned above is constantly being shared at isocpp.org and on /r/cpp. Subscribe to both to get a constant stream of links to anything and everything about C++.

    Edit: as for C++17 material, the standard is not technically completed/published yet, but that hasn't stopped the community from creating material about it! This paper lists all the changes from C++14 to C++17, with links to relevant papers, and this Git repo provides a simple "then, and now" comparisons of the major changes to the language. Talks describing the changes in breadth and in depth have been given at conferences, and blog posts have been written for a more textual description of the changes. C++17 is not a major update like C++11 was to C++98, but full of fixes, conveniences, more language flexibility and utility, and new toys to play with! If you have a solid foundation in C++11, C++14 and in turn C++17 should be relatively easy to pick up compared to the shift from classic (C++98) to modern C++.

    TL;DR Learn C++11 the best you can. Once you are comfortable with C++11, the transition to C++14 will feel natural, and C++17 will be waiting just around the corner.
u/jgeusebroek · 12 pointsr/sysadmin

UNIX and Linux System Administration Handbook (5th Edition)

https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554

I can definitely recommend this book

u/8fingerlouie · 11 pointsr/linuxmasterrace

man pages really are good enough once you got the basics down. They were 20 years ago, and I don’t think the quality has decreased. If you want truly great man pages, FreeBSD is the place to go.

To get the basics down, start with something like this

Once you understand that, follow up with something like this

Young people today.. they pick Arch to “learn something” (or just to be cool - I can’t decide), and when the learning part starts, they want the answers served without any effort.
There’s nothing wrong with wanting to learn, just don’t expect to be finished in 4 hours.

I’ve spent 20 years as a Unix system administrator and/or developed systems running on Unix. Before I had kids I spent a few years working on Stampede Linux. My first Linux distribution was “Yggdrasil Plug&Play Linux fall ‘93”. I still learn new stuff frequently, and it usually starts with something I find on the internet, which then get tried on my own machine, and finally i use man pages for troubleshooting/fine tuning.

If that fails, I do what everybody else does, i ask google, and if I still can’t solve the issue, I will ask somewhere. Last issue I had was Debian <-> FreeBSD NFSv4 mounts with Kerberos that would freeze frequently. I spent a couple of weeks debugging that before asking, and learned a great deal in the process. After google started returning only purple links, I finally asked on a couple of forums.

u/NondeterministSystem · 11 pointsr/worldnews

A scenario where such an AI becomes arbitrarily intelligent and capable of interacting with the outside world isn't beyond the realm of consideration. If it's smart enough to outplan us, a superintelligent Go engine of the future whose primary function is "become better at Go" might cover the world in computer processors. Needless to say, that would be a hostile environment for us...though I imagine such a machine would be frightfully good at Go.

If you're interested in (much) more along these lines, I'd recommend Superintelligence: Paths, Dangers, Strategies by Nick Bostrom. I got it as an audio book, and it's thought provoking.

u/RepliesWhenAngry · 11 pointsr/worldnews

Very good point- I'm currently reading (or trying to read...) this book:

http://www.amazon.com/Superintelligence-Dangers-Strategies-Nick-Bostrom/dp/0199678111

I think you'd like it also.

u/charles__l · 11 pointsr/lisp

Lisp is like magic - it's the programmable programming language - if you learn it, everything else kind of pales in comparison :P

One fascinating aspect of lisp is that it's based on lambda calculus, which is basically a cleaner alternative to Turing machines (Turing machines are basically a mathematical way to describe computable problems). After learning about lambda calculus, Turing machines looked like a hack to me. A decent non-mathematical guide I found introducing them was this: http://palmstroem.blogspot.com/2012/05/lambda-calculus-for-absolute-dummies.html

Even though lisp allows for a lot of functional programming, it's not purely functional, and can be used to write object oriented code, or anything else really.

The books I'd recommend to learning it are:

  • The Little Schemer - a lovely, beginner friendly book that introduces Lisp and computation in a rather unique way.
  • Structure and Interpretation of Computer Programs - this is the book that was used to teach a bunch of programming classes at MIT, and is a classic text for computer science. Despite its advanced topics, it's still rather approachable, especially if you have a decent amount of programming background.
u/jacobolus · 11 pointsr/math

Your post has too little context/content for anyone to give you particularly relevant or specific advice. You should list what you know already and what you’re trying to learn. I find it’s easiest to research a new subject when I have a concrete problem I’m trying to solve.

But anyway, I’m going to assume you studied up through single variable calculus and are reasonably motivated to put some effort in with your reading. Here are some books which you might enjoy, depending on your interests. All should be reasonably accessible (to, say, a sharp and motivated undergraduate), but they’ll all take some work:

(in no particular order)
Gödel, Escher, Bach: An Eternal Golden Braid (wikipedia)
To Mock a Mockingbird (wikipedia)
Structure in Nature is a Strategy for Design
Geometry and the Imagination
Visual Group Theory (website)
The Little Schemer (website)
Visual Complex Analysis (website)
Nonlinear Dynamics and Chaos (website)
Music, a Mathematical Offering (website)
QED
Mathematics and its History
The Nature and Growth of Modern Mathematics
Proofs from THE BOOK (wikipedia)
Concrete Mathematics (website, wikipedia)
The Symmetries of Things
Quantum Computing Since Democritus (website)
Solid Shape
On Numbers and Games (wikipedia)
Street-Fighting Mathematics (website)

But also, you’ll probably get more useful response somewhere else, e.g. /r/learnmath. (On /r/math you’re likely to attract downvotes with a question like this.)

You might enjoy:
https://www.reddit.com/r/math/comments/2mkmk0/a_compilation_of_useful_free_online_math_resources/
https://www.reddit.com/r/mathbooks/top/?sort=top&t=all

u/Quince · 11 pointsr/programming

The problem is, most books are ground out by publishing mills and have very little value - especially to more experienced developers.

I try to choose books carefully and buy very few because most simple answers are already online.

One recent purchase which I felt was actually worth the money (i.e., the same depth of discussion and information was unavailable free in such as well-presented format) was:

"Java Concurrency in Practice" by Brian Goetz
http://amazon.com/o/asin/0321349601

This is an example of how high the bar needs to be raised to make a book worthwhile.

u/ajh2148 · 11 pointsr/computerscience

I’d personally recommend Andrew Ng’s deeplearning.ai course if you’re just starting. This will give you practical and guided experience to tensorflow using jupyter notebooks.

If it’s books you really want I found the following of great use in my studies but they are quite theoretical and framework agnostic publications. Will help explain the theory though:

Deep Learning (Adaptive Computation and Machine Learning Series) https://www.amazon.co.uk/dp/0262035618/ref=cm_sw_r_cp_api_i_Hu41Db30AP4D7

Reinforcement Learning: An Introduction (Adaptive Computation and Machine Learning series) https://www.amazon.co.uk/dp/0262039249/ref=cm_sw_r_cp_api_i_-y41DbTJEBAHX

Pattern Recognition and Machine Learning (Information Science and Statistics) (Information Science and Statistics) https://www.amazon.co.uk/dp/0387310738/ref=cm_sw_r_cp_api_i_dv41DbTXKKSV0

Machine Learning: A Probabilistic Perspective (Adaptive Computation and Machine Learning series) https://www.amazon.co.uk/dp/B00AF1AYTQ/ref=cm_sw_r_cp_api_i_vx41DbHVQEAW1

u/asdff01 · 11 pointsr/AskComputerScience

The book that allowed me to do this is the legendary "Gang of Four" Design Patterns book. Code examples are in C++ and it was written a while ago, but is still recommended as a fantastic resource for learning how to design software well.

There is also the SOLID principles, for object oriented design.

u/Mason-B · 11 pointsr/factorio

You're conclusions, and some of your facts, are wrong.

I literally write game engines for a living, I know about everything you just tried to explain, and it has nothing to do with my point. A 3d version of Factorio (e.g. from scratch see edit 2) could have the same number of game updates regardless of how expensive rendering is because they would be on separate threads. Even Unity and Unreal have separate rendering threads, it's been this way for 5+ years.

Vulkan, DX12, and Metal all enable multi-threaded rendering, because older APIs would only allow a single thread to submit commands at a time. But they have nothing to do with the division of rendering and game logic into separate threads.

Edit: I own a copy of a Game Engine Book from 8 years ago that called one render thread, one game logic thread, standard industry practice.

Edit 2: Also, this FFF explains how they do have many different threads, for example, updating game logic and rendering at the same time.

u/lockedcc · 11 pointsr/gamedesign

Personally, I can recommend "The Art of Game Design" to you. It covers a lot of topics and is also a good entry point.

https://www.amazon.com/Art-Game-Design-Lenses-Second/dp/1466598646/ref=sr_1_2?ie=UTF8&qid=1540218109&sr=8-2&keywords=art+of+game+design

u/againey · 11 pointsr/gamedesign

That sounds like a "kitchen sink" way of development. Keep adding features whenever the play testers sense a gap. It'll never end.

I'd contend that the healthier process would be to have a very clear concept of what the game is about at its core. With NMS, a plausible core could be "exploration". Then, whenever there is a perceived gap, the first question is if filling that gap will contribute strongly to the core. If not (or sometimes even if so), then ask a second question: What is causing the feeling of there being a missing feature? Is it possible to actually cut the feature that leads to the wish for the missing feature? Trim the fat, leave only the leanest meat clinging to the bones, so to speak.

I'm pulling pretty heavily from Jesse Schell's The Art of Game Design, in particular "The Lens of Unification":

> To use this lens, consider the reason behind it all. Ask yourself these questions:

> What is my theme?
>
Am I using every means possible to reinforce that theme?

u/Kumorigoe · 11 pointsr/sysadmin

Daemon and its sequel Freedom, by Daniel Suarez

Suarez is one of us.

u/amenkhet · 10 pointsr/IWantToLearn
u/Jumballaya · 10 pointsr/FreeCodeCamp

> Felt pretty good about myself.. until I got to the algorithm section.

This is VERY normal. These are hard math concepts that take everyone a little bit to get used to. The only way you will learn these concepts is by implementing them, over and over and over and over and over.

> I would say I was getting stuck probably about half the time and would turn to read-search-ask method.

If this were not the case, then there would be no need to learn. I am a web developer and I look up the most inane shit on a daily basis because it is something that I either have never used/implemented or something I rarely use/implement (my big one here is PHP's array functions, I can never remember if the array comes before the callback or not with array_map() but I remember that it is the exact opposite of array_filter() and array_reduce()). Embrace this, build your Google-fu because you will always need it.

> A lot of times I was missing some small operator (code error) or somewhat minor step in the thought process, other times I would be lost entirely. Basically I wasn't thinking about how to implement my code well enough, imo.

This is 100% normal. Have you ever heard of a code review? This is where other developers review your code before it goes live. The point of this is that you cannot be 100% perfect with your code, maybe you forgot a semicolon or maybe your code is tough to read, that is what the code review process is like. I write code in iterations to make sure that I never 'get in too deep' and the fear of removing code sets in, each of these phases I go through a mini code review to see what is working at what isn't. I ALWAYS find some half-baked logic in my first few iterations before I really get into it and over the last couple years I find that I need fewer and fewer iterations and that I am able to get a better 'big picture.'

Don't be afraid to scrap some code and go back at it, this is your education and only you know when you understand the material. I have a bajillion abandoned side projects and so does every developer that I know.


Advice


  1. Keep coding, it is the only way you are going to get better, for real.
  2. Read other people's code. This is where I learn all my cool tricks; Anytime I find a cool project/library/framework I hit up github and read through as much of the source as I can stomach. You will be surprised at how much you learn about the parts of a project that AREN'T code like documentation, contributing, comment styles, things that seem secondary when first learning to program.
  3. Design patterns, paradigms, data structures, algorithms. I wouldn't suggest going head-on with this stuff yet, but don't be afraid of it. Design Patterns Book (Gang of Four) - This is a very highly suggested book, though the examples are in C++
  4. Learn another language. The largest increases in my JS knowledge have come from learning another language and bringing back that language's way of thinking into JS. I would suggest Python because it is stupid-easy to jump in and start making cool stuff, but any language will do. Python, Java, C#, PHP, Elixir, Ruby, C++ and Go are a handful I can think of that will aid in employment as well as teach you new ways of thinking about JS.
  5. Talk to developers, go to meetups, scour github for misspellings in documentation and contribute. Anything that you can do to get a free mentor will be an AMAZING boon for you


    Links

  6. Project Euler - Looking for something to code? Here is around 600 different problems to solve. I am pretty sure some of the FCC algorithms were taken from Project Euler as it is a very good resource.
  7. Eloquent JavaScript - A great resource, though, a little dated
  8. You Don't Know JS - Another great resource on the JavaScript language. I reread through these books every once in a while.
  9. Professor Frisby's Mostly Adequate Guide to Functional Programming - Great primer on functional programming with JavaScript
  10. Rosetta Code - Algorithm reference across many languages, though, the coding style for each tends to be a mess it is a good getting-started reference.
  11. 2017 Frontend Handbook - This is great for figuring out what to learn next when you get to that point where you don't know what to learn next.


    I did FCC up through the frontend section, I started my web dev career path in 2014 and picked up FCC in mid 2015 right before getting a job in web development. The most important part of FCC is that you are coding, getting practice and making mistakes, TONS of mistakes. Just keep it up, don't get burned out and remember that it is about your education, not how many challenges you complete. Code and read and read code.
u/ojimeco · 10 pointsr/linuxadmin
u/thetafferboy · 10 pointsr/artificial

From the comments below from /u/Buck-Nasty /u/Jadeyard /u/CyberByte /u/Ken_Obiwan

For those that haven't read it, I can't recommend Superintelligence: Paths, Dangers, Strategies highly enough. It talks about various estimates from experts and really draws the conclusion that, even at the most conservative estimates, it's something we really need to start planning for as it's very likely we'll only get one shot at it.

The time between human-level intelligence and super-intelligence is likely to be very short, if systems can self-improve.

The book brings up some fascinating possible scenarios based around our own crippling flaws, such as we can't even accurately describe our own values to an AI. Anyway, highly recommended :)

u/cp5184 · 10 pointsr/compsci
u/Gr8ingPresence · 10 pointsr/compsci

I don't think it's reasonable to speak about "canon" books in computer science - the field has become so broad that a handful of PhDs in the modern era could get to the very bleeding edge of their niche and not share any crucial books in common among their libraries.

That said, here are a few I think are fantastic:

u/DoorsofPerceptron · 10 pointsr/MachineLearning

For a maths heavy book, I'd go with Bishop's Pattern recognition and Machine Learning.

Check out the reviews here: http://www.amazon.com/Pattern-Recognition-Learning-Information-Statistics/dp/0387310738

u/Expergefaction · 10 pointsr/networking

Network warrior is a good one for real-life knowledge for people who are somewhat above CCNA level knowledge. Might be a bit advanced if you are new to networking.

https://www.amazon.com/Network-Warrior-Gary-Donahue/dp/1449387861/ref=sr_1_1?ie=UTF8&qid=1466962114&sr=8-1&keywords=network+warrior

u/Idoiocracy · 10 pointsr/gamedev

Thanks for the book link. He is also coming out with a 2nd edition in July this year.

As for them not having producers with strictly that job title, I recall a story by a Naughty Dog programmer that he observed one of the senior programming leads working on some basic user interface code close to the game's shipping deadline. He was surprised at the time that the lead was writing code that would typically be done by a junior programmer at other companies. He told the story to illustrate that the idea of doing whatever grunt work it takes to ship a title and a feeling of responsibility for a feature from start to finish is pervasive at Naughty Dog. Jason Gregory also said that you can look at it as them having more producers than any other company, rather than none, since everyone shares the responsibility.

In a similar vein, Valve is famous for having a relatively flat structure with no managers.

Of course, every company is different and Naughty Dog's approach is not necessarily superior. They can get away with it because they hire high caliber employees. What works for them may not work for most.

u/TheAdventMaster · 10 pointsr/learnprogramming

You want example code? View the videos of the guy who rebuilt Cave Story (or at least parts of it, with a level editor, enemies, etc.). Or check out Handmade Hero. I think there's a Handmade Quake now, too. If you're really serious about game engine design, buy the book.

The reason I suggest other people's stuff is I spent a lot of time building code bases I called engines, not building actual games. I've made and published exactly one complete game that has about 10k views on Newgrounds.com right now.

There are better people to get advice on what to do right from. I'm a professional web developer now and know plenty about where I went wrong.

But I'll gladly chime in more advice if you're willing to hear it. I'd say the biggest difficulty people have when writing any complex code (whether it's games, infrastructure systems or business applications) is you reach a certain point where knowing how to code isn't enough. You have to know how to think critically about problems. That goes back to the problem space vs solution space ways of seeing things, which isn't really taught in school.

Games are a really difficult problem, that also have really difficult solutions. If you just straight into the solution space (let me start coding modules, oh, I probably need something that renders fonts at angles, etc. etc.) you're not going to get anywhere. In order to build complex things like games, you have to get better at programming for sure in order to make so many things work together, but unless you get really good at figuring out your problem space - what exactly it is you're trying to actually solve -you're going to waste a lot of code and time.

And that's one reason most people suggest you start very small. You should be able to code something like Pong in less than a day, probably less than an hour for sure. Even something like Extreme Pong should be mostly easy for you to churn out. But many people struggle with that.

As an aside, I will say that writing a library to perform easings made my life a lot easier. A lot of what takes place in a game can be considered an "tweening animation" of a value from one state to another.

https://github.com/Pritchard/FB-Easing

https://github.com/Pritchard/FB-Easing/blob/master/Easing.bas

I used those for in-game animations, to stretch and skew objects, etc. but that's often more about bringing out the flavour of a game as opposed to the core mechanics. (Like you want an object that falls, but falls violently and shakes when it hits the ground? Chances are that doesn't make a ton of sense from a physics standpoint, so you have to script it. Easings would be one way to script the y-axis value to mimic that behavior.)

u/jhocking · 10 pointsr/gamedev

> What are the changes between the two editions?

Aside from being updated throughout for new versions of Unity (eg. WebGL deployment barely existed when I wrote the first edition) there's an entirely new chapter about 2D platformers. One of the most common cons in reader feedback (whether or not they liked the book overall) was there wasn't enough about 2D games.

> After finishing your book what book/resource should the reader focus on next?

I would say focus on learning game design. My book teaches how to program a game, but that doesn't necessarily mean you're able to design an original game. The afterword of my book mentions several books about game design (including Art of Game Design by Jesse Schell, who wrote the foreword of my book!)

u/redditEnergy · 10 pointsr/cpp

Here are several ways to get yourself started.


  • Read about the c++ core guidelines and Scott Meyer's Effective c++ book
  • The best way to read them without getting really bored or overwhelmed
    • Is 2 ways (Also this is my opinion)

  • Read the table of contents for each
    • Honestly just doing this is a valid tactic. Often when I'm bored I'll crack open the book/guidelines and browse the table of contents and be like "WOAH", "WHAT", "HUH"
  • Turn up ALL the warnings + more
    • I work in Visual Studio almost exclusively so check W4 and then combine it with Resharper (Google "resharper c++")
      You can use clang intelligence thanks to resharper to pick up on even more errors that will tell you that you should be using modern c++ practices. And if you use these flags
    • *,-cppcoreguidelines-*,-cppcoreguidelines-*,-google-*
    • clang -Wall -Wextra -Weverything -Wno-c++98-compat -Weffc++
      • Feel free to look these up / add more
    • You'll slowly start learning some modern c++ via just Visual Studio or Resharper or Clang yelling at you.
    • Also learning this way you can look up with resharper or with google why the thing you are doing is wrong / not modern.

  • Extra advice
    • Often you can just google "how to do X in modern c++"
    • Example "How to do random in modern c++"
      • And the top answer will generally get you someone saying something about <random>
      • From here based on the quality of the answer either trust them, or go find better documentation from either the above resources or from here: https://isocpp.org/
    • Look at other languages like Rust, Go, Jai
      • Example rust generics have better error messages than c++
      • How do you do this in c++?
      • Well the answer is in c++ 20
      • https://en.wikipedia.org/wiki/C%2B%2B20
      • I'll let you explore
      • But my main point is that by looking at new languages you can learn more about modern c++ by asking yourself "Can I do this in c++?". Often the answer is yes but the syntax is gross or in a newer standard. But better that is a heck of a lot better than nothing!
u/MoreOfAnOvalJerk · 10 pointsr/gamedev

Here's my general advice as someone in the AAA field as a programmer doing it for many years.

1 -----------------

If possible, think of your game in modular bits and primarily concentrate on the programming aspects. Block in the visuals with placeholder art if you need to, but a game with good design and mechanics doesn't need fantastic art to be fun (unless your game is animation driven or atmospheric like Dark Souls).

If you break your code into modular bits, you can tackle each part piecemeal and it's a lot more fun to work on. "This week, I feel like making a great input system. Next week, I'll focus on a data-driven AI engine", and so on.

2 -----------------

Keep things realistic. Understand what you can achieve and don't attempt to make a game that can do absolutely everything. Unless you actually want to spend decades making your game, you need to focus on actually finishing the game at a certain point... maybe. If your game follows the dwarf fortress model of being a perpetually unfinished game that you're always working on, that's also fun. Understand what you're getting into though if you go that route.

3 -----------------

Despite what you may think, ideas are not terribly original. It's all about execution. There's TOOOONS of indie games that are extremely successful and use an idea I had been thinking about. Unlike me though, they actually made the game and had the design sense to give it the production value necessary to sell well.

4 -----------------

If you're hungry to make something now, don't lose a hold of that. Keep learning in your spare time. Buy programming books off amazon to supplement your coding ability. I wasted too many years in university playing video games and not enough time learning to be a better programmer. A good high level starting book that can help give you an understanding of the overall picture is this: [Game Engine Architecture by Jason Gregory] (http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135)

Just as you need to learn construction before you can build a house, you need to learn how to program properly before you can make a game. Keep focused and try to shorten the years you need to spend learning by reading books.

5 -----------------

most important unless you're working with a large team, don't worry about having perfect code the first time through. No matter what you do, it's not going to be correct. Try to do it to the best of your ability, but if you worry too much about clean code, you'll suffer from "perfection paralysis" and ultimately end up not finishing anything. This was another one of my mistakes when I was younger and I still catch myself doing it nowadays on occasion. Sometimes making mistakes is the only way to learn.

Don't be afraid to do things the wrong way first.

edit: grammar, added a link to a great book (no, I'm not the author)

u/___GNUSlashLinux___ · 9 pointsr/digitalnomad

Automate the Boring Stuff with Python

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


---


ABC

Always

Be

Coding

u/tooz · 9 pointsr/programming

The Little Schemer - Has to be one of my favorites

u/jimmy0x52 · 9 pointsr/TrueReddit

This was an extremely fascinating read. I've felt this way for a while about social networks and it was part of the reason I finally got off Facebook after so many years.

One clear indication of this I saw frequently was the fact that no one called someone on their birthday any more (or even texted). I was seeing parents even wishing their children Happy Birthday or family members just liking another Happy Birthday post. This kind of impersonal interaction always bugged me.

This article has some great points in it and I hope there is a lot further research put into it. There are a few books cited, and a few others I found related. I've ordered ALL of them and plan to read them all as this is a really fascinating subject for me (a person who was born at the beginning of this era and has become an adult in it with two children who are going to grow up and have to adapt to this).

Books referenced:

You Are Not a Gadget - a Manifesto

Alone Together: Why We Expect More From Technology and Less From Eachother

And one related:

The Shallows: What the Internet is Doing to Our Brains

u/Scripto23 · 9 pointsr/arduino

If you only get one book get Make: Electronics. I was in your position not that long ago, and after getting this book I am now able to build any circuit I need. This book is great and I'll leave it at that.

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/DiggyDog · 9 pointsr/gamedev

Hey there, I'm a game designer working in AAA and I agree with /u/SuaveZombie that you'll probably be better off with a degree in CS. BUT... don't give up on wanting to be a designer!

 

You should realize that it's not giving up on your dream at all, in fact, it's great advice for how to reach that dream. A designer with an engineering background is going to have a lot more tools at their disposal than one who doesn't.

 

Design is way more than just coming up with a bunch of cool, big ideas. You need to be able to figure out all the details, communicate them clearly to your teammates, and evaluate how well they're working so you can figure out how to make something people will enjoy. In fact, working on a big game often feels like working on a bunch of small games that all connect.

Take your big game idea and start breaking it down into all the pieces that it will need to be complete. For example, GTA has systems for driving and shooting (among many other things). Look at each of those things as its own, smaller game. Even these "small" parts of GTA are actually pretty huge, so try to come up with something as small as possible. Like, super small. Smaller than you think it needs to be. Seriously! You'll eventually be able to make big stuff, but it's not the place to start. Oh, and don't worry if your first game(s) suck. They probably will, and that's fine! The good stuff you make later will be built on the corpses of the small, crappy games you made while you were learning.

 

If you're truly interested in design, you can learn a lot about usability, player psychology, and communication methods without having to shell out $17k for a degree. Same goes for coding (there are tons of free online resources), though a degree will help you get in the door at companies you might be interested in and help provide the structure to keep you going.

 

Here's some books I recommend. Some are specific to games and some aren't, but are relevant for anything where you're designing for someone besides yourself.

 

Universal Principles of Design

The Design of Everyday Things

Rules of Play

The Art of Game Design This and the one below are great books to start with.

A Theory of Fun This is a great one to start with.

Game Feel

• Depending on the type of game you're making, some info on level design would be useful too, but I don't have a specific book to recommend (I've found pieces of many books and articles to be useful). Go play through the developer commentary on Half-Life 2 or Portal for a fun way to get started.

 

Sounds like you're having a tough time, so do your best to keep a positive attitude and keep pushing yourself toward your goals. There's nothing to stop you from learning to make games and starting to make them on your own if that's what you really want to do.

Good luck, work hard!

u/siddboots · 9 pointsr/statistics

It is hard to provide a "comprehensive" view, because there's so much disperate material in so many different fields that draw upon probability theory.

Feller is an approachable classic that covers all of the main results in traditional probability theory. It certainly feels a little dated, but it is full of the deep central limit insights that are rarely explained in full in other texts. Feller is rigorous, but keeps applications at the center of the discussion, and doesn't dwell too much on the measure-theoretical / axiomatic side of things. If you are more interested in the modern mathematical theory of probability, try Probability with Martingales.

On the other hand, if you don't care at all about abstract mathematical insights, and just want to be able to use probabilty theory directly for every-day applications, then I would skip both of the above, and look into Bayesian probabilistic modelling. Try Gelman, et. al..

Of course, there's also machine learning. It draws on a lot of probability theory, but often teaches it in a very different way to a traditional probability class. For a start, there is much more emphasis on multivariate models, so linear algebra is much more central. (Bishop is a good text).

u/dropafew · 8 pointsr/scheme

I reccomend the SICP book and SICP Video Lectures taught by Gerry Sussman, who is one of the creators of Scheme.

Why?
Higher-order procedures (Lecture 2A), Metacircular Evaluator (Lecture 7A) are simply badass if you've never been exposed to them.

Also, pick up a copy of The Little Schemer

Why?
I think the book does a good job of covering the mind-blowing [for me] concepts of continuations and the applicative order Y-combinator

You can find some in-the-browser Scheme interpreters too like this one:
http://repl.it/languages/Scheme

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/pjmlp · 8 pointsr/java

You missed:

Filthy Rich Clients

http://www.amazon.com/Filthy-Rich-Clients-Developing-Applications/dp/0132413930

Not so relevant now that JavaFx is here, but still a good way to understand how to properly write Swing code that doesn't put Java to shame.

Java Concurrency in Practice

http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601

A must read for anyone writing multicore code on the JVM.

u/TheStudyOf_Wumbo · 8 pointsr/UofT

CSC265 should only be reserved for people who truly love math. Not for people who like math and enjoy it, but the people who sit up at night reading math textbooks for fun and doing Spivak because it feels good. I took it because I wanted to be elite at data structures. I ended up getting an offer at Google but 265 did not prepare me for interviews in the way that I thought (what I'm trying to say is my offer at Google was not because of 265).

You will be doing purely math. A lot of the topics are covered in more depth, and you have to read chapters on your own.

The questions I got were absolutely insane and had me working unbelievably hard. I'd put in almost 25-30 hours a week for the course. I was able to get 90's on the assignments (but one of them was downright impossible).

There's a lot of really smart math geniuses who take the class so if you're a "normie" or even just "smart", you will feel like an idiot. People would come to class and clearly had read way ahead, so the TA would blaze forward since you'd feel like an idiot going "no I don't get this" constantly. You'd have to spend a ton of time at home playing catch up. All my practical knowledge of data structures wasn't too useful, but attempting Faith's homework prior to doing the course helped me the most. If anything, I think reading TAOCP is probably the best preparation, but it's probably not even feasible for anyone to do that before this class because it probably takes years to properly read that.

One of the questions we got was some probability question that I literally could not get after 30 hours of trying. It was impossible for me. The answer ended up being a published paper, so you get the question then you pretty much could have published the paper if you did this question 30 years ago. When I practiced on Faith's assignments for 265, there was not a question that I found that insane to the point where I couldn't get it.

This class should only be taken IMO if you want to do algorithm research or were bored out of your mind in CSC236/CSC240. I don't know if this course is physically possible if you do it with MAT257 and 3 other courses, but I'm sure some genius would prove me wrong. There is no physical way you could do 5 courses with one of them being CSC265 and work on side projects to prepare for PEY unless you are really good.

Also it's the first class I ever took where the average was so shit for the midterm that one of the questions got turned into a bonus question right after the midterm (usually they just shift people up at the end, so doing it after a midterm tells you something).

Maybe people who did MAT157 can handle such things, I'm not sure. It was the most stressful semester I ever did. What I learned was amazing, but it will definitely fade in time because I will probably never use that knowledge since I don't intend on going to graduate school.

I'd further only recommend that class to people who are sadistic enough to enjoy such hard questions where you are literally freaking out 2 days before it's due because in 12 days you still weren't able to find the solution and kept finding holes in the problem. How I managed to get 90's on the assignment when the class average was between 65-72 is beyond me.

Lastly, this course feels much different from other courses cause the math at times isn't hard, it's just proving some discrete property tends to be nuts. However, the part I found really hard might actually be better off with people having real analysis since it was probability and real numbers which I'm not as good at.

tl;dr: If you get through it, you will be a Navy SEAL for CS. If you are asking "is the workload too much" when deciding to take this course, you should not take this course.

EDIT: I should also say if you're a CS genius then maybe the workload is normal.

u/fathermocker · 8 pointsr/DoesAnybodyElse

This is the subject of the book "The Shallows", by Nicholas Carr. I don't completely agree with the guy, but it's thought provoking at least.


Ninja edit: Wait, I just saw the irony of recommending a book.

u/VorpalAuroch · 8 pointsr/artificial

Sotala and Yampolskiy, Bostrom's book, Infinitely descending sequence... by Fallenstein is a really interesting, clever solution to a piece of the puzzle. I'm not sure what you're looking for, particularly; everyone currently working on the question is pretty invested in it, because it's still coming in from the fringe, so it's all going to be people you'll denounce as "not credible".

u/vagif · 8 pointsr/programming

We need a book like The Little Schemer, but for haskell.

u/firesofmay · 8 pointsr/compsci

If i had to suggest one book to you I'll suggest buy "The little schemer". Take a pen and a notebook with you. Keep the laptop aside and solve it on paper. Don't do anything else. Read it, solve it on paper then rest and think about what you just learnt. This book will change the way you think about computation if you have never seen any functional language before.

Oh and the book is in Socrates style, so you'll not feel you are just reading a book you'll feel you are talking to a master and having a dialogue with him. Some people can't get that style. It worked wonders for me.

Give it a shot. And pleasure is mine :)

Ref: https://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0262560992

u/mxyzptlk · 8 pointsr/programming

The Little Schemer takes you from zero? to meta circular interpreter in 10 chapters of questions and answers.

u/beepbupe · 8 pointsr/linux4noobs

2nd this.

The Linux Command Line. Author offers free PDF for download or you can support and buy from amazon.

http://linuxcommand.org/tlcl.php

 

https://www.amazon.com/Linux-Command-Line-Complete-Introduction/dp/1593273894/r

u/code_hotel · 8 pointsr/sysadmin

This isn't a book per-say about system administration with python, but it is a quite useful one if you want to get into it.
https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994/ref=pd_lpo_sbs_14_t_2/146-3820539-3232947?_encoding=UTF8&psc=1&refRID=ZDZ3YRPFMWYVRR949Z70

u/CodeCodeCodeDurrr · 8 pointsr/gamedev

[Game Engine Architecture] (https://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010) is pretty good, and has C++ code in it (I think)!

u/octnoir · 8 pointsr/Games

He's right. One of the 'holy grails' of game development books is "The Art of Game Design - A Book of Lenses"

Jesse Schell starts off by saying before you start designing a video game, start designing a board game because if your mechanics can't be explained or are too complicated for a board game, they just won't work in a video game.

u/P-Wittix · 8 pointsr/ccna

Cisco press has a book: 31 Days Before CCNA which can help with study/review schedule and topic breakdown.

For more study material, Todd Lammle’s CCNA book Amazon is a good read, the Official Cert Guide by Wendell Odom is very detailed and can be a bit dry.

Best of luck in your studies!

u/theslyda71 · 7 pointsr/technology

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

u/tnecniv · 7 pointsr/arduino

Make: Electronics is a fantastic book for the hardware side of things. It does not use the Arduino (it only briefly touches on microcontrollers at the end), but it will give you a solid foundation to whicht you can easily apply the Arduino.

u/mr_wowtrousers · 7 pointsr/IWantToLearn

I am going through this book:

Make: Electronics (Learning by Discovery)

Beginner like you and it is pretty easy to follow along with. Great explanations.

u/leashertine · 7 pointsr/BdsmDIY

I don't know any video series, but this is the book series I recommend to new makers:

Fundamentals:

Make Electronics

Useful Companion Reference:

Encyclopedia of Electronic Components Volume 1

Encyclopedia of Electronic Components Volume 2

Bonus Points Reference:

Encyclopedia of Electronic Components Volume 3

Between those books and YouTube you'll be squared away for 99% of anything you would typically build at home. I say that as an engineer with work experience designing electronics.

u/coisinhadejesus · 7 pointsr/brasil

O Steve Yegge fala uma coisa que é o seguinte, você não pode dizer que sabe uma linguagem de verdade até conseguir escrever um compilador dela.

Por isso, se você quer viver de uma linguagem, é melhor encarar logo um camalhaço de mil e quinhentas páginas que ensina tudo de cima até embaixo do que tentar ficar aprendendo gambiarra ( e no caso de python tem muitas ).

u/bcostlow · 7 pointsr/Python

I think /u/swingking8 was spot on when s/he said to find a project that captures your interest. You'll be using the language and not just following a tutorial.

But, once you have a feel for the syntax, I can't recommend strongly enough that you look up presentations and writing by Raymond Hettinger and David Beazley.

If you learn best by reading before doing, Mark Lutz's Learning Python seems intimidating because of its size. But it's so big because it is both comprehensive and accessible for beginners. So depending on what you already know, you can skip large parts. But if you really understand everything in that book, you are well on your way to being an intermediate level Python dev.

u/AeroNotix · 7 pointsr/django

Looking at your posting history you really need to pick up a book or two. Very unfocused learning going on here.

OpenShift is probably the most unusual way of deploying or learning how to deploy Django. This is confounding your learning troubles. Omit OpenShift.

If you already know Python, skip this one, but at least think about it: Learning Python. Then.

Pick up Two Scoops of Django. Learn it, read it. All. Local. Do not use a "real" database, use SQLite. Do not think about deploying at all.

Once you're comfortable with Django. Experiment with understanding what a database actually is, how it works and how to administer it, how to configure it. How to configure it with Django. Use something other than MySQL, which invariably means Postgres.

Once this is done and I mean done. Only then is it time to think about how to get deploying Django. Use a VPS, do not use a magical "we'll do it all for you" thing. It's just clouding too much for you to clearly understand what's going on. It's hindering learning. Omit things which cloud understanding.

u/-Claymore- · 7 pointsr/cpp_questions

C++ is a very complete language withs lots of details. But that doesn't mean you need to know everything.

Don't overuse every feature just to show off. Start with the simple things. Class management, templates creation (the simple ones), data structures and the most important, smart pointers.

Don't go after manual memory management. That's old school and it is only usefull in very specific cases and applications (high performance computing and games). Learn to use smart pointers and you will stay safe, away from the segfault Hell.

Learn to use the STL templates. Lists, Vectores, the good stuff. They have been developed by highly skilled people and has taken years of beating by professionals. Use them whenever you can. It will make your life easier when debugging and make your program easier to port between different archs.

There are great books out there. Effective Modern C++ is one of my favorites.

u/silveryRain · 7 pointsr/cpp

It's a book. Books are instruments that record, analyse, summarise, organise, debate and explain information; that are illustrated, non-illustrated, hardbound, paperback, jacketed, non-jacketed; with foreword, introduction, table of contents, index; that are intended for the enlightenment, understanding, enrichment, enhancement and education of the human brain through sensory route of vision - sometimes touch.

u/Daganar · 7 pointsr/GraphicsProgramming

.FBX is one of the most used formats in the industry, what usually happens is the artists output their work into .FBX files and either the engine loads it directly, or will convert it to a proprietary format that's most efficient for their engine. Unfortunately information on .FBX is not publicly available so you have to use their SDK.
http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=10775847
http://docs.autodesk.com/FBX/2014/ENU/FBX-SDK-Documentation/

.OBJ is not a suitable format for animation it's only good for defining meshes and materials. A very good library that removes all the hassle of format loading is Assimp: http://www.assimp.org/

Lastly, animation formats don't store individual vertex positions, it will store matrix transformations. It's worth looking into how animation is done, I don't have any links but I would recommend looking at the following books:

https://www.amazon.co.uk/d/Books/Game-Engine-Architecture-Jason-Gregory/1568814135

https://www.amazon.co.uk/Game-Coding-Complete-Mike-McShaffry/dp/1133776574

u/Azhain · 7 pointsr/roguelikedev

People talk about prototyping games a lot. Like, you have an idea so you build out a simple example so you can play it and see if it's fun on a basic level.

But what they don't really talk about, is prototyping code. It's hard to figure out how things fit together in a meaningful way if you don't already know the coding conventions or patterns that can help you build them.

As a self taught programmer whose work includes a good deal of coding now, I've gotten a lot of use out of building out small 'hello world' type examples of more complicated code structures.

Imagine you're trying to build a skyscraper, you wouldn't just try and build it straight out of your head, you'd follow a kind of miniaturized version of it, a blueprint. So that's what you should do as a programmer, make blueprints. Don't just make blueprints for your whole game, make blueprints for even the smallest sections of it if you don't feel like you completely understand it.

My wife is a senior-level project manager for a really large construction firm and her projects typically cost somewhere in the range of $500 million. When she's on the job-site supervising a part of the build, she doesn't refer to the blueprint for the whole project, she uses the blueprint for that specific part of the job. So if you're having trouble figuring out how to properly break a python game out into modules, don't look at coding examples of full games because you'll just find it overwhelming. Look for simple examples of python imports and module structure. But more importantly, build small examples of how that works using those examples to make sure it works how you're expecting.

Think of the game you want to make, and form some basic ideas about how it should fit together. Read up on programming patterns, game engine architecture, or artificial intelligence for games and whatever other topics interest you about game design. Make small code projects prototyping concepts that are interesting. I have a project folder on my computer that is filled with small examples of programming patterns, complicated data structures, skeletal game structures, and anything else that can serve as a blueprint for building something else.

So if you're reading and come across Entity Component Systems (ECS), and you think that theoretically sounds like a good way to build your game, don't start by trying to build a game using ECS. Build a prototype of an ECS pattern. Something really simple and instructive of how you would do it for a larger project, a blueprint.

For example, this is the actual code I wrote when I was prototyping one of my favorite patterns, the Service Locator.

class Service:
_audio = None
_graphics = None

@staticmethod
def playermoved():
if Service._audio:
Service._audio.play_footsteps()
if Service._graphics:
Service._graphics.animate_player()

class Audio:
def play_footsteps(self):
print("Pitter Patter")

class Graphics:
def animate_player(self):
print("Look at the player move")

audio_system = Audio()
graphics_system = Graphics()

Service._audio = audio_system
Service._graphics = graphics_system

Service.playermoved()

And if you read the description, you'll see that this example doesn't really fully articulate the pattern as described. But that's okay, because the point of the code blueprint is to experiment with implementing concepts in a way that works for you.

u/HalcyonSoftworks · 7 pointsr/gamedev

I haven't read it, but I've heard good things about Jason Gregory's Game Engine Architecture.

u/doss_ · 7 pointsr/linux4noobs

the easiest way is to strictly identify which part is really the variable:

foo=test

cp $foofile testdir/. # cp: missing destination file operand after 'testdir/.' ($foofile doesn't exist and expanded to null, not enough required params for cp)

cp "$foofile" testdir/. # cp: cannot stat '': No such file or directory ($foofile still doesn't exist, but expanded to '' due to double quotes usage - good practice)

cp ${foo}file testdir/. # will compy 'testfile' if exists

Also it is usefull to access command line params from inside the script if there are more than 9 params, to access 10th param use ${10}

and here is some list i noticed for myself of how to use this braces, while reading this book - would recommend:

Sorry for formating issues, reddit treats spaces and new lines in special way..


variable substitution:
substitution:

Bash supports various variables substitutions:

$a - will be substituted with 'a' value

${a} - same as $a but could be concatenated w/ string w/o spaces:

${a}.txt - will be expanded in a_value.txt

${11} - 11th positional parameter given to script from shell

${var:-word} - if 'variable' is set, the result will be its value

if 'variable' is unset - the result will be 'word'

$(var:=word} - if variable is set results in its value substituted

if variable is unset, it will be assigned to 'word'

such assignment will not work for positinal params(see 'shift')

and other special variables

${var:?word} - if variable is unset error with reason 'word' will be

generated, exit code of such construct will be 1

${var:+word} - if 'variable' is set, the result will be 'word',

(but variable's value will not be changed)

otherwise result will be EMPTY string

Example:

$ echo ${variable:-ls} - variable unset - ls used

> ls

$ export variable=1

$ echo ${variable:-ls} - variable is set- its value used

> 1

$ echo ${variable:+ls} - variable is set - ls used

> ls

$ echo ${variable1:+ls} - variable unset - empty line used

>

${!prefix} or ${!prefix@} - returns NAMES of existing variables

that starts from 'prefix.

Example:

$ echo ${!BASH
}

> BASH BASHOPTS BASHPID BASH_ALIASES BASH_ARGC BASH_ARGV BASH_CMDS

string variables substitution:

${#var} - returns length of string in variable's value

Example:

$ var=123456789 #this could be interpreted as a string too now

> 9 #string length is 9

${#} or $# or ${#@} or ${#} - returns number of positional parameters

of the script being executed

${var:number} - return string from number to the end, spaces trimmed

variable is unchanged.

Example:

$ var="This string is to long."

$ echo ${var:5} #returns string from 5th symbol

> string is to long.

Example: spaces are trimmed:

$ echo ${var:5} | wc -c #count chars

$ 19

$ echo ${var:4} | wc -c #return starts from space

$ 19 #space is trimmed so same number of chars

${var: -number} - return string from end to number, spaces trimmed

NOTE - space between ':' and '-' signs

Example:

$ echo ${var: -5}

> long.

${var:number:length} - return string from number till end of lenth

Example:

$ echo ${var:5:6}

> string


${var: -number: -length} - return string number between number(from the

end) and length (also from the end)

NOTE: number must be > than length

Example:

$ echo ${var: -18: -2} #var is This string is to long.

> string is to lon

${@} - return all values of positional params

leaving spaces inside strings (like "$@" ) - bcs it know how

many arguments script has

${
} is the same form, it seems

${@:num} - displays values of positional params but from num

$(@:1) - works same as ${@}

${@: -2} works , but starts from the end

${@:num:length} - same as with strings but with positional params

${@: -num: -length} - same as with strings but with positional params

${param#pattern} - finds shortest match and deletes it (lazy match)

Example:

foo="file.txt.gz"

${foo#.}

>txt.gz

${param##pattern} - finds longest match and deletes it (greedy match)

Example

${foo##
.}

>.gz

${param%pattern} - same as # but deletes from the end of the file

Example:

foo=file.txt.gz

${foo%.} - note . instead of . in # example

>file.txt

${param%%pattern} - same as ##

${foo%%.
}

>file

Search and replace:

${param/pattern/string} - replaces first occurance of pattern with string

${param//pattern/string} - replaces all occurances of pattern with string

${param/#pattern/string} - replaces only if at the beginning of the line

${param/%pattern/string} - replacesonly if at the end of the line

u/bofha · 7 pointsr/linuxadmin

Tanenbaum's textbook is par for the course THE best low-level exploration of the fundamental concepts of operating systems. It is, however, HIGHLY theoretical, and requires a solid base of knowledge prior to even starting it. It also is not useful for learning specifics about every day tasks.

This is a phenomenal introduction to the concepts and some of the practice of Linux:
http://www.amazon.com/How-Linux-Works-Superuser-Should/dp/1593275676/ref=sr_1_1?ie=UTF8&qid=1454103950&sr=8-1&keywords=how+linux+works
And here is a practical-first exploration of how to use Linux:
http://www.amazon.com/Linux-Command-Line-Complete-Introduction/dp/1593273894/ref=sr_1_3?ie=UTF8&qid=1454103950&sr=8-3&keywords=how+linux+works

I would highly recommended reading these two books, then picking up a copy of Tanenbaum's, and finally this:
http://www.amazon.com/s/ref=nb_sb_ss_i_2_9?url=search-alias%3Daps&field-keywords=unix+and+linux+system+administration+handbook&sprefix=linux+sys%2Caps%2C204&rh=i%3Aaps%2Ck%3Aunix+and+linux+system+administration+handbook

If you actually study and practice implementing the topics discussed in these four books then you will have a far better understanding than 90% of the Linux users I've interacted with.

u/dear_glob_why · 7 pointsr/javascript

There's more than a single design pattern for applications. Recommended reading: https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented-ebook/dp/B000SEIBB8

u/alphaglosined · 7 pointsr/csharp

I would recommend not looking for C# specific books. Language specific books tend to get out-dated very fast and won't be as high of quality.


For this reason you want books like https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844 and https://www.amazon.com/Computer-Programming-Volumes-1-4A-Boxed/dp/0321751043

​

I'm personally in the market for data structure books, sadly its a slippery slope when you already have a few.

u/CriticalLobster · 7 pointsr/cscareerquestions

> I want to gain knowledge and learn more by reading and thinking

Say no more, I have your answer

u/bixmix · 7 pointsr/VoxelGameDev

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

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

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

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

Thanks, I share your feeling. The first time I visited this subreddit I was looking for similar posts. I wondered how people could combine Reddit with their busy life or how they would be able to indeed create stuff by at the same time consuming so much. I could not find any of this idea at that time and I just kept surfing until a few months ago when I started frequenting Reddit less and less.

In the meantime I did not stop thinking about it, read The Shallows by Nicholas Carr and wondered how people could combine all this easy, distracting input (Reddit, Facebook, just surfing in general) with bigger things that require no distractions or 'alone time', like reading, learning a new language, or in your case hoolahooping with fire. My conclusion was that you can't. If you want to go for it, you just have to go for it.

Of course you can combine Reddit with taking a test, but you can not combine it with finishing cum laude. I also realised though that this does not count for most people, they can combine these things, but they do not have the intention to become the new Einstein. It is a whole different discussion if this should even be a personal goal, but my idea was that these new Einsteins are so into the achieving of their dream that this would be really hard to combine with the great entertainment part of the internet and our society. It requires an opt-out, you will have to be an einzelganger at some times and that is exactly what what internet tries to prevent.

You worded this very well in your statement and I agree wholeheartedly. As you can see I'm still on Reddit but not for long. The past few months when I paid Reddit a visit I noticed that the lesser frequency of my visits also made me see the content better. And although I'm subscribed to a whole lot of interesting subreddits and described from all these fun things, I still noticed that I did not need all of this. It gave me a sense of passivity that I should not want in my life.

Nevertheless there are a lot pro-arguments to this website and I see that as well. Because I'm living in the Netherlands, I do not necessarily have to suffer some of the ills that the United States is made of. I can really understand that you need some inspiration of sanity if you live in a small conservative town where everyone is the personal friend of Jesus. So yeah, Reddit should inspire you, but maybe more as in a caravanserai. You meet a lot of new and interesting people, have a good night's sleep and travel on. Staying there also means that you will not arrive at your destination.

The people who say that you should do everything in moderation do not see that this is really hard for some people, but these are the same people that will give you some of the most interesting stuff. They can immerse themselves, lose themselves in Reddit or alike, but if they learn to use this energy in a more enduring way they can use it to write books, build houses or govern countries (just some examples).

In my view it works just like torrents. You have the seeders, who make things. They put in the effort. They show themselves once they finish their product. Their creations will surprise or disappoint. Then, there are the leechers. They wait. They need the seeders and they will criticize or praise the products of the seeder. Most of the time a seeder also leeches, but a lot of leechers tend to forget that they can also be seeders.

TL;DR: Reddit should inspire you, but maybe more as in a caravanserai. You meet a lot of new and interesting people, have a good night's sleep and travel on. Staying there also means that you will not arrive at your destination. Just like torrents, the society consists of seeders and leechers. The OP decided he wanted to be a seeder, I as well.

u/BreakOpen · 7 pointsr/OrthodoxChristianity

I have a similar problem to yours, but it centers more on social media than the internet as a whole. Between random memes, constant political posts/debates, and the generally atheist/anti-religious tones of everything I read, it can be very discouraging and distracting. Particularly if I waste valuable time going down the rabbit hole of comments. Taking breaks from social media has been helpful to me, and it's timely that you've posted this, because I'm considering doing so again.

Related to this, I recommend a great book called The Shallows: What The Internet Is Doing To Our Brains which dives into how the habit of quickly scrolling for small bites of info and moving on can damage our attention spans. Like how people put "TL;DR" at the end of posts because readers get turned off by "walls of text".

Prayers and best wishes to you on regaining your digital footing.

u/tylerjames · 7 pointsr/movies

It's even more interesting if you don't just think him as the standard insane genius trope, but realize that he is probably genuinely disturbed and conflicted about what he's created and what to do with it.

Trying not to be spoiler-y here for people who haven't seen the movie but there are probably a lot of practical and metaphysical questions weighing on him. Is an AI truly a conscious creature? Does it have wants? If so, what would an AI want? Given that its social manipulation, long-game planning, and deception abilities are off the charts how could we ever be sure that what it told us was the truth? Does it have any moral considerations toward humans? How would we ever be able to contain it if we needed to? And if it is a conscious creature worthy of moral consideration then what are the moral ramifications of everything he's done with it so far?

Really interesting stuff. For those inclined I recommend checking out the book Superintelligence by Nick Bostrom as it explores these themes in depth.

u/stillnotking · 7 pointsr/atheism

This illustrates why we need to be careful with AI. A superintelligent AI given the directive to maximize human happiness might just stick electrodes in everyone's pleasure centers, or start an intensive, mandatory breeding program, because more humans = more happiness. It might be fully aware that that's not what we meant, but it's what we said...

(Yeah, I'm reading Nick Bostrom's book.)

u/FeepingCreature · 7 pointsr/programming

...

So maybe try to understand what people who worry about AI are worried about? I recommend Superintelligence: Paths, Dangers, Strategies, or for a shorter read, Basic AI Drives.

u/nexxai · 7 pointsr/OpenAI

I couldn't have said it better myself. I read Superintelligence by Nick Bostrom (which is an insanely good read by the way) earlier this year and was becoming more and more worried that there was no one stepping up to the plate to spearhead a movement like this, at least nothing of this magnitude. To know that people like Elon Musk, Reid Hoffman, and Ilya Sutskever are behind this gives me hope that maybe we can emerge on the other side of the intelligence explosion relatively unscathed.

u/cparen · 7 pointsr/compsci

The little schemer and the seasoned schemer. They start feeling like a really easy, gentle intro to programming. The dialog presentation style is amusing, and some serious Socratic style teaching going on about programming with an algebraic bent, and the second book builds up to a surprise ending, a rather interesting program -- I won't spoil the surprise for you.

u/Andrew_Hager · 7 pointsr/learnprogramming

Try the book "The little schemer"

The Little Schemer - 4th Edition https://www.amazon.com/dp/0262560992/ref=cm_sw_r_cp_apa_i_OST2Db7M254TR

I couldn't wrap my head around anything past very basic recursion. Once I had completed this book, I felt like I had a fairly solid understanding of the topic. Well worth the money, in my opinion.

Edit: As a side effect, you learn a little scheme which happens to be a very fun language.

u/Flightless_Ferret · 7 pointsr/networking

Depending on your level of knowledge:

Networking

Brocade IP Primer I haven't read it myself, but some guys around these parts that I have a lot of respect for recommend it highly for beginners.

CCENT Offical Cert Guide Good next step after above and gets you the CCENT cert which is half the ccna if you pass the test.

CCNA Official Cert Guide Next step after CCENT, gets you CCNA obviously if you pass the test.

If you need to know some basic wireless, I highly recommend the CWTS by CWNP. It is meant more as marketing/sales, but honestly its a really good entry into wifi. You can always follow it up with the CWNA after.

And an always favorite, the network warrior. This book really brings it all together for doing day-to-day networking for a ccna level. I haven't read all of it, but the majority I did read really clarified what I the CCNA brushed over.

As far as Microsoft and other tech's, I highly recommend getting your hands on CBT Nuggets (Yeah, its a bit expensive ~$1000 / year) and just start devouring as much as you can. Watch two or three shows a night? Sub one of them for a CBT nuggets vid. Just devour a few books and some vids and do your best to lab (either in vmware or with gear) and you'll be off to a really great start.

On a political level at work, I'd be fighting for some training (again cbtnuggets or the like) saying, hey tech is always moving forward and you need it to keep up and benefit the company. If you stay hungry you'll do just fine :)

u/gonnason · 7 pointsr/networking

Everything he said.

And:

Get a subscription to Safari Books Online if you can. It has helped me so many times when I don't know a given subject in detail.

Read: Network Warrior, great overview on lots of things. http://www.amazon.com/Network-Warrior-Gary-A-Donahue/dp/1449387861

Don't be afraid to say "I don't know, let me research that for you." You have to build a trust relationship so people know they can rely on you for good answers, not guesses or other half assed stuff.

Find trustworthy sources you can ask questions regarding concepts, deployments, and technical issues.

u/Baltazards · 7 pointsr/gamedev

I can only think about "Game Engine Architecture Second Edition" by Jason Gregory Lead programmer at Naughty Dog :
http://www.gameenginebook.com/
https://www.amazon.fr/Engine-Architecture-Second-Jason-Gregory/dp/1466560010

u/kalas_malarious · 7 pointsr/gamedev

Are you looking for how to make games? Not just programming, but actually make them? I have some suggestions, but they often aren't about programming. There is a million books about programming, but finding those that talk about the ideas and ways to successively improve is a better point to start from.

  • The Art of Game Design: A Book of Lenses
  • Game Design Workshop: A Playcentric Approach to Creating Innovative Games
  • Kobold Guide to Board Game Design

    Making video games is easy. Put the pitchfork down and let me explain. Anyone can open unity and load some assets and call it a game. Making good games is difficult, and even if you are not looking at card/board games, you should be prepared to test your game on paper. It is easier to make iterative improvement if you can look for mechanical and mathematical issues by scrawling some notes on paper cards.

    For a book that covers both programming and game design, I also suggest this one.

    These books will cover the psychology, the pitfalls, etc that come with making a game. You do not need a class to make a game portfolio. You can often get things done faster by a book, because it's goal is to teach as you read, not set a timer for 15 weeks. It can assume you will do it over 26 weeks or more if the book is huge.

    Anyway, this is a much larger reply than I intended. Hopefully these are informative. If nothing else, they are significantly cheaper than a class.
u/cemremengu · 7 pointsr/csharp

Those who want more detailed info on these should check the Design Patterns book by GOF

Link:
https://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional-ebook/dp/B000SEIBB8

u/myrrlyn · 6 pointsr/learnprogramming

>How did you learn this?

With a Computer Engineering degree and a friend in Comp Sci I could pester.

Here's some of my reading list:

u/fact_hunt · 6 pointsr/java

For concurrency you can't go wrong with Java Concurrency in Practice

u/dafrito · 6 pointsr/learnprogramming

"Java Concurrency In Practice" is the text that I would recommend.

http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601

u/spyk · 6 pointsr/programming

Well the whole boxed set costs $183 on amazon http://www.amazon.com/gp/product/0321751043/.

u/this_shit · 6 pointsr/philadelphia

It's a scary validation of all the technological-dystopian theories like The Shallows. I used to be much more dismissive of the idea that facebook/media bubbles/instant gratification was hurting society.

But here we are.

u/subtextual · 6 pointsr/Neuropsychology

You might take a look at Nicholas Carr's 2011 book The Shallows: What the Internet is Doing to our Brain. The same author also has a new book out on the effects of automation in general on the human brain. Carr's 2011 book was a finalist for the Pulitzer, though it's not without it's detractors -- at the very least, it cites a lot of research and should give you some background on some of the major researchers and ideas in the field. BTW, I think the field is called Human-Computer Interaction (and that's what Amazon calls books on this topic), though HCI also covers making computers and technology easier for people to use.

u/ladiesngentlemenplz · 6 pointsr/askphilosophy

The Scharff and Dusek reader has been mentioned, but I'd like to put a plug in for the Kaplan reader as well.

The following are also worth checking out...

Peter Paul Verbeek's What Things Do (this is my "if you only read one book about Phil Tech, read this book" book)

Michel Callon's "The Sociology of an Actor-Network"

Don Ihde's Technology and the Lifeworld

Andy Feenberg's Questioning Technology

Albert Borgman's Technology and the Character of Contemporary Life

Martin Heidegger's "The Question Concerning Technology"

Lewis Mumford's Technics and Civilization

Jacques Ellul's The Technological Society

Langdon Winner's "Do Artifacts Have Politics" and The Whale and the Reactor

Hans Jonas' "Technology and Responsibility"

Sunstein and Thaler's Nudge

Neil Postman's Amusing Ourselves to Death

Nicholas Carr's The Shallows and The Glass Cage

u/TheDarkIn1978 · 6 pointsr/electronic_cigarette

If anyone is interested, this book is pretty great for amateur hobbyists like a lot of us here.

u/CannibalAngel · 6 pointsr/ccna

The CCNA can be taken a few different ways. As 2 exams (ICND1 and ICND2) or 1 exam (CCNAX). The combined exam is mostly for re-certification and for people that have been in a Cisco networking role for a while. Beginners should take the 2 test route. It is only $5 more expensive and will be much easier than the 1 test path.



Taking an instructor-lead class is going to be a crap-shoot. How good it is and how well it prepares you for the exam are ENTIRELY dependant on the instructor. Plus in-person classes are usually expensive. Self-study, in my opinion, is the way to go for almost every certification.


You should always use multiple resources to prepare for any exam. I recommend the following for the CCNA:



Pick up the Wendel Odom OCG (Official Certifiaction Guide). You can get it on Amazon for around $40 for both the INCD1 and INCD2 books. You can also get the /u/lammle book for around $30 on Amazon. The Odom book is considered very dry and hard to read, but has more information and goes deeper into the subjects than the Lammle book does. I personally do not have a problem with the Odom book and have readt it all the way through.



You should also get a video course. There are tons out there (CBT Nuggets, ITPro.TV, INE, Kevin Wallace, etc.). I recommend Chris Bryant's course on Udemy. It usually costs around $12 and is extremely good for the price.



You also need a lab of some kind. The most recommended would be a Hardware lab (with real Cisco routers and switches), GNS3, or Packet Tracer. Obviously a hardware lab is going to be expensive (probably around $300 for a basic one). I use Packet Tracer and while it has it's flaws and limitations it seems to be good enough for the CCNA. On top of that it is FREE. GNS3 is also free but requires that you have your own IOS images to run in it (which are not free unless you go a less-than-legal route to aquire them). There is also INE's lab and Cisco's VIRL but they are very expensive and VIRL requires a pretty beefey machine to run.



Read a book, watch a video course, and lab EVERY concet you can. If you really get stuck and can't figure something out or don't understand something after researching it yourself, come post here and ask. We are always willing to help.

u/noized · 6 pointsr/ccna

>Do i really need too buy the very expensive cisco books from their site?

No, and I recommend one or both of these two books:

OCG

Lammle

I also recommend taking ICND1 then ICND2 instead of the composite (200-125).

I also recommend the Boson practice tests, they seem to be the most popular, for good reasons too.

>When i do the exam for ICND1, do i also have to do the test for CCENT cert? Is the CCENT cert test just based on the ICND1 stuff? Just asking since it seems you have to do 2 tests for the same thing?


CCENT and ICND1 are the same thing, once you pass ICND1 100-105, you are now a CCENT. Once you pass ICND2 200-105, you are a CCNA.

u/Echohawkdown · 6 pointsr/TechnologyProTips

In the interim, I suggest the following books:

  • Digital Design and Computer Architecture, by Harris & Harris - covers the circuitry & hardware logic used in computers. Should also cover how data is handled on a hardware level - memory's a bit rusty on this one, and I can't find my copy of it right now. Recommend that you read this one first.

  • Computer Organization and Design, by Patterson & Hennessy - covers the conversion of system code into assembly language, which itself turns into machine language (in other words, covers the conversion of programs from operating system code into hardware, "bare metal" code). Knowledge of digital circuitry is not required before reading, but strongly recommended.

  • Operating System Concepts, by Silberschatz, Galvin & Gagne - covers all the basic Operating System concepts that each OS today has to consider and implement. While there are Linux-based ones, there are so many different Linux "flavors" that, IMO, a book that covers a specific Linux base (called a Linux kernel) exclusively would be incomplete and fail to address all the key aspects you'll find in modern OSes. Knowledge of coding is required for this one, and therefore should be read last.

     

    As for the coding books, I suggest you pick one up on Python or Java - I'm personally biased towards Python over Java, since I think Python's syntax and code style looks nicer, whereas Java makes you say pretty much everything you're doing. Both programming languages have been out for a long time and see widespread usage, so there's plenty of resources out there for you to get started with. Personally, I'd suggest going with this book for Java and this book for Python, but if you go to Coursera or Codecademy, you might be able to get better, more interactive learning experiences with coding.

    Or you can just skip reading all of the books I recommended in favor of MIT's OpenCourseWare. Your choice.
u/StrikeSaber47 · 6 pointsr/bioinformatics

This. I swear the best non-course instructed way is using this great e-book.

http://learnpythonthehardway.org/

Otherwise if that is what you are using already, then I recommend Learning Python 5th edition from the O'Reilly series of technical books.

http://www.amazon.com/Learning-Python-Edition-Mark-Lutz/dp/1449355730

u/blackdrago13 · 6 pointsr/learnpython

Try Learning Python by Mark Lutz. It provides a comprehensive, in-depth introduction to the core Python language (Support Python 2 and 3). It's a hefty read, 1648 pages, only to discuss the about the core of Python.

Or his Python Pocket Reference might suits you better.

u/Wussie · 6 pointsr/gamedev

Jason Gregory - 3D Game Engine Architecture is a great book although it does focus on C++, but the majority of the content is language independent and more concerned with architecture rather than implementation details.

And as noted before, Real-Time Rendering is a must-have.

u/rylandgold · 6 pointsr/programming

/u/rampion already made a great recommendation of Charles Petzold's Code that I highly recommend. Another great one is Tao Te Programming which is barely a book (in terms of length), but is available for free online.

I also really loved Game Engine Architecture but obviously that's pretty niche. I have more and will do my best to add them later

u/LuminousP · 6 pointsr/gaming

I kind of sounds like you're whining.

go to /r/gamedev

If you know how to program effectively and you want to do something solo. Learn how to Art. If you know how to Art, learn better programming skills.

here's some of my favorite book recommendations

Programming:

Game Coding Complete

The fucking bible as far as books on game development goes. Made by one of the senior developers on the Ultima series. Seriously. Good book.


Game Engine Architecture

Also a really good book, teaches you more about usability beyond yourself if you ever find time or reason to expand your team.

Art:

Drawing on the Right side of the brain This is a very good text for getting you out of your comfort zone and into the mindset you need to have to do good art. This book won't teach you how to make good art, practice will, but its a good first step.

I'd also start looking around, take a look at Blender, we have a great community at /r/Blender and start learning how to do modelling, theres some great tutorials on the gamedev subreddit, as well as a number of classes on Programming and one on Game Concept art at University of Reddit.

Now get up off your ass and start building a game. Pixel. By. Pixel.

and if you have any questions, shoot me a pm, I'd be glad to help!

u/trkorecky · 6 pointsr/gamedev

I've found Jason Gregory's Game Engine Architecture a great read, was recommended to me by the program director of a game development masters program.

u/bbltn · 6 pointsr/roguelikedev

In terms of "tying it all together" I recommend this book - http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135

It covers game engines in a pretty general way, a light overview of every part and what role it plays in the whole. If you're having trouble figuring out architectural questions like what a game loop should look like, this book will help a lot imo, maybe faster than source diving in other roguelikes.


Outside of resources like that, I'd suggest just starting even simpler than a game loop. Draw a field of '.' to the console. Draw an @ on top of that. Make the @ move. One thing at a time, and your game loop will build itself.

u/Dreieck · 6 pointsr/HowToHack
  1. Don't start with Kali Linux.

  2. Especially do NOT replace your main OS with with Kali Linux. I'm assuming you are not familiar with Linux, so you will most likely damage your computer if you make a mistake.

    -get a VM and install Ubuntu to mess around and get used to the environment. The VM will keep you from damaging anything and acts as a failsafe.

    -I also suggest reading about how to use BASH. This will help you familiarize yourself with Linux. This book is amazing.

u/serzkawpoije1 · 6 pointsr/learnpython

This is something simple that could be accomplished with most languages, and it's very simple to do in Python.

I believe Automate the Boring Stuff covers everything you'd need to accomplish the task.

u/IcanCwhatUsay · 6 pointsr/learnpython

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

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

Good post to read and print

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


u/tuckeriswilde · 6 pointsr/EngineeringStudents

If you like reading and referencing a book while coding I absolutely suggest "Automate the Boring Stuff with Python

u/tokennrg · 6 pointsr/networking

Network Warrior is an O'Reilly book that's excellent for real world stuff.

u/SgtPackets · 6 pointsr/ccna

The book I see recommend around here for people looking to learn more about "Real World" Networking but aren't yet going for their CCNP or other certs, is this book.
https://www.amazon.co.uk/Network-Warrior-Gary-A-Donahue/dp/1449387861

If you want, you could also grab yourself this book:

https://www.amazon.co.uk/Routing-Switching-Portable-Command-100-105/dp/1587205882/ref=sr_1_1?ie=UTF8&qid=1475319461&sr=8-1&

If you know you'll be working with alot of Cisco gear. I have it, and have found it very handy when studying /out and about.

u/BaconWraith · 6 pointsr/opengl

If you don't mind reading or shelling out a bit of money, Game Engine Architecture is still a great resource

u/sjbrown · 6 pointsr/RPGdesign

I recommend The Art of Game Design as a great resource for this specific question:
https://smile.amazon.com/Art-Game-Design-Lenses-Second/dp/1466598646/

And if you don't want to spend the money, here's a hot tip: download the "Deck of Lenses" app on your mobile device. It's basically an extremely summarized version of the book, organized into a "deck". As you consider your resolution mechanism, flip through cards in the deck and ask yourself, "how does this lens apply? is my mechanism successful or deficient when viewed through this lens?". Not all lenses are going to apply, but it's a very useful exercise.

u/MaxGame · 6 pointsr/ontario

I took it not that long ago. It is composed of 2 tests. Information on them can be found here http://certification.comptia.org/getCertified/certifications/a.aspx

Testing centres and booking can be found here http://www.pearsonvue.com/

I don't remember the exact cost but I think it was somewhere between $350 and $400 for both tests. If you are interested in taking the A+ exam, I would recommend getting some study material such as http://www.amazon.ca/CompTIA-Certification-Guide-220-801-220-802/dp/007179512X/ref=sr_1_1?ie=UTF8&qid=1381873535&sr=8-1&keywords=a%2B+certification

I worked as a computer technician for ~2 years before taking the test and still used a study guide before taking it.

u/Knighthawkbro · 6 pointsr/linuxadmin

Honestly, you are never going to find a way to shortcut you out of this situation. No one answer is going to be perfect and get you from A to B if your already at C. I had a similar experience with programming and web development.

I studied computer networking all my adult life and never thought I would be developing as my career at the moment. It is the burden of knowing too much and not having a clear direction. What I needed was more confidence in my skills which can only really develop over the years through experience.

You say you already know a lot of Linux and Bash concepts. CD/CI pipelines try to abstract a lot of OS related involvement since your code doesn’t need to know how low level kernel operations are happening.

What it sounds like you need is knowledge of OS concepts, not just Linux concepts. I say this because every OS has its own way of doing the same thing one way or another.

For example virtual memory, if you understand the concept of virtual memory in any OS rather than a specific OS’s semantics regarding Virtual memory then I think you would be better off in the long run.

If I am wrong and you are the master of the Linux environment, I believe you just need to deep dive into development strategies and the core principles of CD/CI. Once you have a foundation it doesn’t really mater if you are a Jenkins expert or CircleCI expert, all that matters is if you have a foundation to fall back on.

Edit: if you wanted my two cents on material here are some books I recommend.

The Practice of System and Network Administration

Operating Systems Concepts

UNIX and Linux System Administration Handbook

u/zoredache · 6 pointsr/ansible

There almost certainly no configuration management system or orchestration system guides that are going to be useful without at least a base understanding of the systems you will be managing.

If you want some base knowledge maybe start with something like this

u/Grel · 6 pointsr/learnprogramming

While I have not read it, I hear great things about The Little Schemer

The Little Scheme on amazon

I used SICP which can be found here. It is really great!

u/sking301 · 5 pointsr/computers
u/NemSFW · 5 pointsr/CompTIA

I'm using this to study

u/dwleonard · 5 pointsr/sysadmin

I'm a big fan of:
https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554

Disclaimer: I know 2 of the authors, but the book is still solid.

u/jerseylegend · 5 pointsr/devops

I can't quite envision a devops engineer without a good foundation of linux, especially if 98% of the servers are linux based. I also ask some basic scripting questions(if they tell me they do script). If the interviewee has never scripted, that's unfortunate. If you struggle moving around the infrastructure, it's going to be a difficult and stressful job, and more importantly, more work for us if we underestimated his/her skills and we have to babysit to help someone on what we perceive is essential and crucial to function. We do have numerous tools, processes, etc in aws, especially now where more and more companies are migrating to the cloud and doing serverless, but I have found that some of the bigger(little older) companies have tons of linux hosts to manage. And many of those aws resources are prob ec2's - you can ssh in, you can't escape linux!

I personally don't care which linux you know, i care more that you know how it works. However I am particular to CentOS, and Ansible.

I've had to interview a few people recently and i ask them sub-groups of questions: AWS, linux, networking, tools (jenkins, docker, config management). My hardest questions are linux. The tools, with the exception of docker, are the least significant because they can be learned; Generally the good linux candidates, for example, probably have already written scripts that do some of the functionality a config management tool was designed for. I think networking is very important but my questions are very basic. Generally the people with the aws cert/xp have already seen a lot of aws networking; Fortunately for the candidates, Ops manages the vpc's, acls, sg, routes etc so the devs don't break anything and therefore we don't rely on too much networking knowledge. But you gotta know how systems are communicating with each other.

My linux, aws, and networking(most) questions are scenario/exercise/conceptual based on real world problems/scenarios i've seen throughout the career. I simply ask what they've done with config management and jenkins or other CI and other tools they have listed on their resume.

On a maybe unrelated note - in my personal opinion, i think devops eng should learn how to use docker and know it a little in depth. It is an invaluable tool especially for development/testing work. Docker Up & Running and Docker In Practice are very good books

I'm in nyc, if it matters.

I recommend Unix and Linux System Administration Handbook The first 6 chapters (skip2) are a good start.

u/magnus007 · 5 pointsr/sysadmin

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

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

u/AccidentalBirth · 5 pointsr/breadboard

You can try /r/electronics, /r/askelectronics, /r/EngineeringStudents, /r/engineering and /r/arduino too, in case this doesn't receive much attention. This is a pretty small subreddit, with very few subscribers. You'll have much more luck in those subreddits (the first two are very good for these types of questions).

This book would be perfect for you. Heck, I'm in my fourth year of electrical engineering, and I love that book. I'm sure you can find a free version somewhere, but I won't link you to that. It truly is an exceptional book that really teaches you about these things. Highly recommended and well worth the money. You'll have to make some purchases before each chapter, nothing too expensive. Just stop wasting money on alcohol or drugs and spend it on something that will benefit you in the future, something more relevant to education haha.

Seriously, that book will explain to you like you're five. It is great. And if you have any questions about the contents of it, you can google it, ask someone on the subreddits, or PM me for information.

Mind if I ask where you live? And what inspires you to be an engineer? What are some of your favorite classes in school? Tell me more about you.

I must say, your approach is a very good one. I can already tell you're a highly motivated person. You have a good attitude.

Edit: Some people are suggesting you start with arduino. But I really recommend you start with reading, and the basic tools (breadboard, components, etc). Although arduino can be basic, it involves coding as well, something you're likely not familiar with. Just get the book, and I promise you'll be satisfied.

u/SlipStreamWork · 5 pointsr/networking
u/Obie-two · 5 pointsr/learnprogramming

the book is just called "Design Patterns?"
This?

u/-jp- · 5 pointsr/java

Learning JavaScript is pretty good advice since it's useful in its own right, but honestly any company that expects a Jr. Java developer to have any kinda deep insight is being just unreasonable, and probably isn't a very good place to work. Everybody starts somewhere, Java developers included.

That said, for anyone wanting to learn design patterns, I suggest the classic GoF book: Design Patterns: Elements of Reusable Object-Oriented Software.



Just.

Please.

Promise me if you read it you won't use Visitor for anything ever.

u/invictus08 · 5 pointsr/cscareerquestions

I will suggest start with Head first design pattern. That will gradually build your intuition about good software design. And it’s more fun to read compared to GoF imo. On top of that, there are Youtube videos by a guy named Christopher Okhravi on design patterns. Since I understand much better with videos (along with text book) because of my attention deficiency, they really helped me.

Apart from that, follow tech blogs of Netflix, Google, AWS, Uber etc. They are treasure troves.

Also, as /u/ibsulon mentined, Clean Code for writing good quality code, Programming Pearls and Pragmatic Programmer etc. Effective java and Doug Lea's book on concurrent programming - really helpful.

u/Ownaginatious · 5 pointsr/java

These two are good reference guides despite their age. Lots of good best practice stuff.

u/caryy · 5 pointsr/learnprogramming

In addition to Code Complete 2, which, while very dense, is a compendium of wonderful coding knowledge... I recommend Clean Code by Robert C. Martin.

One of the best books on concurrency that I've ever read is definitely Java Concurrency In Practice it's (obviously) written with Java in mind, but most of the concepts map rather easily to constructs in other languages as well.

The standard for design patterns is still probably Design Patterns (colloquially "Gang of Four")... but I've heard good things about Head First Design Patterns as well, despite the really stupid cover.

u/Thought_Ninja · 5 pointsr/learnprogramming

If you want to dig deep into the theoretical of programming, and help build a good foundation for OOP, patterns, and algorithm design, check out Concrete Mathematics: A Foundation for Computer Science. It is honestly the best textbook I have ever come across.

From there, if you're feeling really ambitious in studying algorithms, check out The Art of Computer Programming, but I should warn you, it is very dense and can be hard to understand even for accomplished developers.

Beyond that, I suggest checking out The Odin Project. It covers a variety of languages and frameworks including Ruby On Rails, which is pretty standard in app development these days. They have a lot of great references and side material. It's basically a "go at your own pace" open source coding boot-camp.

> Like I said, this is for me. I hate just being told "do this" and having no concept of why. I want to understand why I'm doing it, the implications for doing it "this way".

This... This is the mindset that will carry you and eventually make you stand out as an exceptional programmer. Learning how to do something might land you a job, but knowing how it works makes you an invaluable asset to any employer.

As long as you are passionate about learning the material, you will pick it up over time.

>This is where I realized that I was doing this wrong, at least for me. I'd be on codeabbey and know what I wanted to do, but not how. I realized that I needed to be building larger things to be working with oop concepts. I really felt I was missing a lot of "base" information.

Awesome observation. Doing studying and doing drills both have an important role in the learning process, but there are other forms of practice to include in order to reinforce the material in a meaningful way. Ruby Rogues Podcast has a great group discussion about how to learn that I highly suggest you give a listen.

Personally, I learn best by throwing myself into a project where I am in wayyy over my head. By struggling through problems, scrupulously tearing through documentation and examples, I learn a lot more of the why than the how at the end of the day.

I learned Javascript, jQuery, and AJAX by building a templating & ecommerce framework. I started out with little to no knowledge or understanding of how JS worked, and was forced to restart a number of times as I began to see what was good and what was not, but now I feel very comfortable working with it.

Find a problem, and solve it, because Computer Science is, really, just the art of problem solving.

Best of luck, and most importantly, have fun :D

u/effernand · 5 pointsr/learnmachinelearning

When I started on the field I took the famous course on Coursera by Andrew Ng. It helped to grasp the major concepts in (classical) ML, though it really lacked on mathematical profundity (truth be told, it was not really meant for that).

That said, I took a course on edX, which covered things in a little more depth. As I was getting deeper into the theory, things became more clear. I have also read some books, such as,

  • Neural Networks, by Simon Haikin,
  • Elements of Statistical Learning, by Hastie, Tibshirani and Friedman
  • Pattern Recognition and Machine Learning, by Bishop

    All these books have their own approach to Machine Learning, and particularly I think it is important that you have a good understanding on Machine Learning, and its impacts on various fields (signal processing, for instance) before jumping into Deep Learning. Before almost three years of major dedication in studying the field, I feel like I can walk a little by myself.

    Now, as a begginer in Deep Learning, things are a little bit different. I would like to make a few points:

  • If you have a good base on maths and Machine Learning, the algorithms used in Deep Learning will be more straightforward, as some of them are simply an extension of previous attempts.
  • The practical part in Machine Learning seems a little bit childish with respect to Deep Learning. When I programmed Machine Learning models, I usually had small datasets, and algorithms who could run in a simple CPU.
  • As you begin to work with Deep Learning, you will need to master a framework of your choice, which will yield issues about data usage (most datasets do not fit into memory), GPU/memory management. For instance, if you don't handle your data well, it becomes a bottleneck that slows down your code. So, when compared with simple numpy + matplotlib applications, tensorflow API's + tensorboard visualizations can be tough.

    So, to summarize, you need to start with simple, boring things until you can be an independent user of ML methods. THEN you can think about state-of-the-art problems to solve with cutting-edge frameworks and APIs.
u/NicolasGuacamole · 5 pointsr/MLQuestions

A good textbook will do you wonders. Get one that is fairly general and includes exercises. Do the exercises. This will be hard, but it'll make you learn an enormous amount faster.

My personal favourite book is Christopher Bishop's Pattern Recognition and Machine Learning. It's very comprehensive, has a decent amount of maths as well as good examples and illustrations. The exercises are difficult and numerous.

That being said, it is entirely Machine Learning. You mention wanting to learn about 'AI' so potentially you may want to look at a different book for some grounding in the wider more classical field of AI than just Machine Learning. For this I'd recommend Russel and Norvig's [AI: A Modern Approach](https://smile.amazon.co.uk/Artificial- Intelligence-Modern-Approach-Global/dp/1292153962). It has a good intro which you can use to understand the structure and history of the field more generally, and following on from that has a load of content in various areas such as search, logic, planning, probabilistic reasoning, Machine Learning, natural language processing, etc. It also has exercises, but I've never done them so I can't comment much on them.

These two books, if you were to study them deeply would give you at least close to a graduate level of understanding. You may have to step back and drill down into mathematical foundations if you're serious about doing exercises in Bishop's book.

On top of this, there are many really good video series on youtube for times when you want to do more passive learning. I must say though, that this should not be where most of your attention rests.

Here are some of my favourite relevant playlists on YouTube, ordered in roughly difficulty / relevance. Loosely start at the top, but don't be afraid to jump around. Some are only very tenuously related, but in my opinion they all have some value.

Gilbert Strang - Linear Algebra

Gilbert Strang - Calculus Overview

Andrew Ng - Machine Learning (Gentle coursera version)

Mathematical Monk - Machine Learning

Mathematical Monk - Probability

Mathematical Monk - Information Theory

Andrew Ng - Machine Learning (Full Stanford Course)

Ali Ghodsi - Data Visualisation (Unsupervised Learning)

Nando de Freitas - Deep Learning

The late great David MacKay - Information Theory

Berkeley Deep Unsupervised Learning

Geoff Hinton - Neural Networks for ML

Stephen Boyd - Convex Optimisation

Frederic Schuller - Winter School on Gravity and Light

Frederic Schuller - Geometrical Anatomy of Theoretical Physics

Yaser Abu-Mostafa - Machine Learning (statistical learning)

Daniel Cremers - Multiple View Geometry

u/slashcom · 5 pointsr/compsci

In Natural Language Processing, it's Jurafsky and Martin. In Machine Learning, it's debatably the Bishop book.

u/fajitaman · 5 pointsr/NoFap

The Shallows: What the Internet is Doing To Our Brains

I think NoFap is really just a niche part of a bigger drive to get away from the internet (or at least use it differently), and I completely agree with all of it. The internet (if used without taking precautions) and porn both change the physical structures of our brains in ways that preclude having a fulfilling life with longterm satisfaction. Fortunately our brains are very plastic and it's not too late to fix them.

I've tried quitting the internet cold turkey, and it's haaaaaard. The problem is that it's a global addiction that's deeply intertwined with our social and work lives. You can't really get away from it without totally alienating yourself, so quitting all of the internet is not viable. It's very difficult to draw the line between useful or necessary internet usage and bad internet usage, so moderating your own internet usage can be tough.

Here's my attempt at drawing that line, though:

  • If you're using the internet for data acquisition or communication, you're using it right.
  • If you're using the internet for education or entertainment, you're using it wrong.

    Obviously education and entertainment are important, but the internet is just not the place to do it. With respect to education, the internet will promote distractedness and a habit of multitasking, and ultimately your learning will suffer (the book I mentioned focuses on this). If you want to learn, try to use the internet to find books, and then use those books to learn (or take a class, etc).

    There are, of course, certain things you can learn only through the internet. Tutorials, for example, are online, as is the vast majority of modern journalism. You need to be careful with either of these. When it comes to reading the news, I like to use my tablet and the Pulse application, and I'm only subscribed to longer-form journalism like the type you'd see in The Atlantic. When it comes to tutorials, do whatever you can to not open additional browser tabs. In either case, you should at the very least read these things like you would read a book. Don't allow yourself to get distracted by hyperlinks, and if some topic confuses you, usually it's okay to just ignore it (or mark it) and press on, rather than try to immediately learn about this other topic through outside sources.

    As for entertainment, that's something you can do in real life with real people (or again, with more reading, which is always healthy). Entertainment online is a process of overstimulation and isolation. Porn falls into this, but so do videogames and even mindlessly clicking pictures on reddit. In general, if you get on the internet without a clear purpose, you will probably be using it for entertainment, so always try to tell yourself why you're getting online before you do it.

    The first good use for the internet is data acquisition, by which I mean it's a good place to go to find a fact or set of facts. For example, if you want to go see a movie it makes perfect sense to get on the internet and look up movie times. In these situations, you'll get online, find the information you want, and then quit.

    Communication is a bit iffier, and maybe it should come with its own set of restrictions. Email and social networking are great, insofar as we don't use them for entertainment. I don't really suffer from this problem, but when I get on facebook it becomes pretty clear that many people are sort of addicted to self-posts and being heard. This might be absolutely fine for all I know (you could liken it to journaling), so for now I'm going to just assume that social networking, love or hate, is something we're going to have to live with if we want to partake in the 21st century.

    This might warrant its own post, since I've got quite a bit to say on it (I've kept most of it inside my head, so it might be totally rubbish for anyone else as far as I know).

u/jaywalkker · 5 pointsr/sysadmin

Network Warrior by Gary Donahue is supposed to be pretty good and highly recommended. It's billed as a sort of, "you've got your CCNA, now what?" real world approach to networking design/t-shooting/application.

u/MKeb · 5 pointsr/networking
u/burwij · 5 pointsr/ccna

I'm in the same boat as you. I just passed last Thursday with a 907 - must be a popular score.

I've heard several people recommend Gary Donahue's Network Warrior as a bridge between the CCNA and studying for the CCNP. I haven't yet checked it out myself, but I'm strongly considering picking up a copy.

u/saltytaco · 5 pointsr/gamedev

As always one of the most recommended books will help you: Game Engine Architecture by Jason Gregory It does require some programming knowledge however, but it will show you the inner workings of an engine and how they are made.

u/faehnrich · 5 pointsr/learnprogramming

A huge and detailed, but very good video series of an entire game engine and game is Handmade Hero.

I've heard the book Game Engine Architecture on a few lists as being good.

u/pehnn_altura · 5 pointsr/gamedev

That's a fantastic book! And, he just recently released a new version.

u/joeswindell · 5 pointsr/gamedev

I'll start off with some titles that might not be so apparent:

Unexpected Fundamentals

These 2 books provide much needed information about making reusable patterns and objects. These are life saving things! They are not language dependent. You need to know how to do these patterns, and it shouldn't be too hard to figure out how to implement them in your chosen language.

u/swirlingdoves · 5 pointsr/Polska

@1. Mysle ze pytanie ktore trzeba zadac sobie najpierw to "czym jest dobry game design". Ile ludzi bedzie gralo w dana gre? Ile pieniedzy gra zarobi? Jaki efekt bedzie miala na graczach? Ogolnie polecam fora czy nawet subreddity typu /r/gamedesign. Sa tez kursy oferowane za darmo online przez powazne uczelnie np MIT. Z ksiazek polecam Theory of Fun i The Art of Game Design

@2 Tak, spojz na Notch'a ;)

@3 Rob male, proste gierki. Polecam "game jams" Nie wiem jakie to popularne w Polsce ale w Internecie jest tego sporo i po krotce chodzi o taki "sprint" (na przyklad 24 godzinny lub jedno-weekendowy) podczas ktorego celem jest zrobienie gdy na podstwie jakiego hasla lub protych ktryteriow. Znajdz innych ludzi i zamiast samotnie, pracuj w grupie powiedzmy trzech osob co by sie wzajemnie motywowac.

u/7tryker · 5 pointsr/gamedev

Have you read Jesse Schell's Art of Game Design book? It's a great read for game designers if you don't have it as a reference.

In it, he gives you some good lenses to look through that encompasses almost every game design decision you should be making for your game. I am positive there is a lens in the book that you can look through for your game that addresses your unwillingness to bend reality to accommodate intriguing game ideas. Remember your audience isn't yourself or your own personal tastes, if something doesn't make sense for you, maybe prototype the idea and playtest it with some folks and then judge whether the idea is indeed enhancing the game experience, if so it shouldn't matter much if it makes sense to you or reality or not.

u/luciensadi · 5 pointsr/MUD

One of the most important aspects of game design is that the story should always be written first, with the design and technology then being informed by the story. What you need to do is come up with the game you want to make (which hopefully is also a game you think other people will have fun playing), after which you can create a design plan / feature list / implementation plan from that.

I suggest you read The Art of Game Design for general game design information and Richard Bartle's Designing Virtual Worlds for MUD-specific information. That's probably a good first step for getting you into serious MUD development.

Edit: link formatting

u/Franku-Senpai · 5 pointsr/cpp_questions

If you haven't read these books already, what are you doing, go and read them now.

Effective C++

More Effective C++


Effective STL


Effective Modern C++

u/srnull · 5 pointsr/cpp

Disgusting. Scott himself comes here to share news about his book, and this is the first reply he receives. I dislike the abundance of memes, but this is apt: "This is why we can't have nice things."

Perhaps it's been up for awhile at this point, but the book can now be preordered at Amazon. My preorder is in, just as it was for Bjarne's TC++PL 4th edition.

u/proverbialbunny · 5 pointsr/algotrading

Scott Meyers made Effective Modern C++ which has a lot of changes in the language documented and documented well. If you're proficient in C++ I highly recommend checking it out. (Or watch: https://youtu.be/xnqTKD8uD64)

The big one is ownership semantics leading to smart pointers.

The general rule of thumb is you should never use a raw pointer, except when you're not transferring ownership. Also, consider weak_ptr, and references, always references.

SFINAE in class, really? I'm impressed. Use constexpr if instead when you can (90% of the time). SFINAE should really only be used for firmware and library engineers and is on its way out, if concepts ever get finished.

Metaprogramming in C++? More like dark magic, taking advantage of C++17 plus SFINAE. No, I think you mean meta template programming, most likely. Meta template programming has been replaced with constexpr if as well. Don't do it, unless you like pranking your coworkers. You can write meta template programming to crashes IDEs when they try to read the file.

>data structure/algorithms (arrays/linked lists/trees/maps/stacks/queues/searching/sorting/graph searches and efficiency considerations)

That's more data structures than algorithms. I personally think algorithms are more important, but I digress:

std::deque is important, and no it's not a doubly linked-list. All the different hash and tree structures like std::unordered_multiset are super helpful to know, even if you never use them. Understanding sets and tuples too. None of this is specifically modern C++, except that most of these data types didn't exist or were incomplete 'till C++11. cppreference is super helpful and imho should be used regularly.

Oh and C++ has a whole slew of algorithm functions and classes now. Check them out on cppreference, but imho they're not super helpful like they are in Python or R. Really, learning how to make an algorithm is more important.

Oh, I've been rambling about old stuff. Okay back to modern: the different kinds of bracket initializations are important. Previously initialization had a lot of () in it, so auto foo = Bar(0);, should that be a () or a {}? Looking at it I can tell you it most likely should be auto foo = Bar{0}; but it's not a guarantee. I'd have to look at Bar's source code to verify.

There are modern idioms that should be considered, like aaa or almost always auto, and should be followed when possible and reasonable to do so.

Lets see, what else.. nullptr instead of NULL. A lot of the pre processor can be replaced with constexpr and constexpr if.

Ranges is definitely worth learning but that's a C++20ism. std::expected is super helpful to know but that's a C++20ism as well. (Just to know there are more ways to handle exceptions and which to use.)

They teach perfect forwarding in classes you go to? What classes are you taking? That's impressive. I'd say std::move is super important to know and understand, but it's a given if you understand ownership semantics.

Oh, there are new keywords. default and delete should be used liberally when creating a new class, in conjunction with the 0,3,5 idiom. override is important on the inheritance front, and imho should be enforced using a compiler flag.

Oh! Threading and file handling have had a complete over hall. Now C++ does it instead of using the OS' libraries. Threading is a bit of a sinkhole and should be known inside and out if you're working on your own project. If the project is large enough the framework should handle all of the threading for you. Otherwise, it is important. (eg, lockfree programming is kind of important in most situations.)

And of course lambdas. Super useful. No more void *. I can't believe I almost forgot them. Pass code around, not variables.

RVO is important when considering ownership semantics. Basically, don't std::move on return unless necessary. Don't return a pointer or a reference unless necessary.

Gosh there was something else..

Let's see, inheritance isn't taught right in any book or class I've seen. There is a prerequisite of understanding how to make types. This is important for quant work, because you'll probably be using custom types everywhere. Learning how to make them in C++ is important, not just use them, because it builds the prerequisite conceptual understanding for multiple inheritance.

Inheritance in Haskell terms is subtyping or abstract typing. Abstract classes (not necessarily fully abstract, just not concrete) are a type of class, sometimes called a subtype or abstract type. Inheritance isn't just for gluing code together. It's for having types of classes, or categories of classes. This is something understood on a senior level, but because it is so difficult to understand modern languages tend to just ban multiple inheritance out right. C++ has it, so understanding the thought process to not doing it right, but thinking about it right, is important.

I'm sure there is more. Oh, there is a new syntax Herb Sutter has been pushing which is pretty great, if the whole code base has it. .... and I can't find the video. The skinny is int foo(double bar) becomes auto foo(double bar) -> int. The philosophy is the function name should be as far as possible to the left hand side to make code more readable, because types can get stupidly long sometimes. The C++98 equiv, which thankfully most of the code bases I've worked on do:

int
foo(double bar)

Oh and std::variant combined with constexpr replaces unions.

Basically, if it's in C there is a C++ equiv. Use that instead. The exception is native types, and functions. Even loops have changed to range based for loops eg for(auto it : foo) and with std::for_each, though C style loops are still useful and used sometimes. Oh and structs are still around and can be popular, but std::variant or std::all might be a better option depending on what you're doing.

And the most important saved for last. Read http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines learn it, love it. For example, checkout F.15. Super helpful. This is official, so you can use it for coding disputes and what not.

phew \>.\<

u/TemplateRex · 5 pointsr/cpp

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

u/argh6543 · 5 pointsr/learnprogramming

To be honest, I would recommend a low level functional book over a C# or C++ specific book that teaches you APIs. Most of the language/API specific books get hung up on details, work arounds and such rather than focusing on what is really important.
The mathematics of 3D programming or so was really really useful - it shows algorithms and goes into why certain algorithms are fast/slow and give good/bad results.

If you want API/C++ stuff, I'd go with
http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135/ref=pd_bxgy_b_text_z

Very well written and goes into debugging and such as well.

u/thelazydeveloper · 5 pointsr/learnprogramming

The common advice given to those new to game programming that want to develop an engine is to simply make games. Through the process of making a game you'll come across code that can be reused, and refactoring this code into a generic form will allow you to build up a library of useful snippets/classes/what-have-you and eventually an engine.


However, if you're curious about game engine architecture, there's a great book by Jason Gregory, Jeff Lander and Matt Whiting called Game Engine Architecture which describes the components that make up an engine and illustrate some design choices.

u/GobTotem · 5 pointsr/linux4noobs

I am a beginner too and just finished this book TLCL.Another one i would recommend is shell scripting bible.For most part use google to learn about commands and man page is your friend. I am more of a book kind of guy so never used video resources. Most important you should know where to look for help when stuck.

u/DrAmbulanceDriver · 5 pointsr/learnprogramming

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

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

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

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

u/DaysBeforeSpring · 5 pointsr/Python

Yes. subprocess is a standard library (i.e. "baked in" to Python). pexpect is a separate install, but not at all painful. For my own reasons, I'm installing it the hardest possible way and it's literally 3 commands.

If this is something you want to mess with, check out Automate the Boring Stuff.

u/enteleform · 5 pointsr/Python

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

u/sayubuntu · 5 pointsr/Python

Pick up the book “Automate the boring stuff”

Amazon

Free Online Version

And steal a project from there. The draw of python is you can make something useful fairly early on in the learning process.

Edit: I’de go with web scraping. Providing everyone with how to implement the shell functionality described in the book, and see what they come up with as far as a useful web scraper as your open ended requirement.

u/farfigneugan · 5 pointsr/learnpython
u/BoomBoxCreations · 4 pointsr/oculus

Some people do, but remember also, game engines are hugely complex pieces of code that aren't for the feint of heart. This book shows a good portion of what can go into it.

Remember also that engines such as Unreal, Unity, etc. allows you to actually make a game without worrying too much about the lower level systems. More time spent actually making the game vs planning low-level systems = fun

u/marshray · 4 pointsr/gamedev

I just got a copy of
Jason Gregory - Game Engine Architecture
http://www.amazon.com/dp/1568814135

There is the obligatory few chapters on "how to compile C++ with Visual Studio". I'm an experienced programmer and am just skipping that.

But the amount of depth across a broad range of core game concepts is really impressive. You can tell the author has worked on real production software and is wanting to share his hard-earned wisdom, starting with the important bits rather than the noob bits. For example, there's a great chapter on vectors and matrices, and great chapters on 3D rendering and lighting. A lot of books seem to stop there. But it's not baby talk, it assumes you have a decent high school math background, and for that reason there's room for chapters on many more topics.

A lot of it relates to 3D but 2D is often mentioned. A lot of it relates to C++. The reason is that that's the language used to get the most performance out of consoles and PC games.

This may or may not be what you're looking for, but if it is, I highly recommend it.

u/null_operator · 4 pointsr/hacking

Going through a linux book, like this one, will get you over your linux hump. But otherwise, just doing stuff in Linux will get you going, like:

  • How do I make this linux box host a website?
  • How do I configure SSH accounts?
  • How do I change the swap settings?
  • How do I use xterm from another machine?
  • How can I samba share a resource?
  • How can I map a windows drive at home from SSH from outside my network like at Starbucks?
  • Can I add a route/port-fwd/limit-allowed-IP's through it?
  • Configure IPtables
  • Run a cron job or bash script that scrapes your favorite reddit for new comments about some topic and saves it as a web page on a server, so that you can read it from anywhere (like creating your own RSS feed), have the script monitor the file, and when the file changes (compare the hash), the script will tweet/SMS you that there is stuff to read.

    Once you get going, you're limited by your own imagination!
u/phabeon · 4 pointsr/linux4noobs

Just get these 2 books(all you'll need, peep the reviews for proof) and thank me later

Linux Command Line

How Linux Works

u/Nezteb · 4 pointsr/linux4noobs

Some info on distro differences:

u/zubie_wanders · 4 pointsr/raspberry_pi

Already good responses in here. If you're interested in a good book to learn a bit more, the concise Linux Pocket Guide is very handy. A longer book is The Linux Command Line: A Complete Introduction.

u/temporaryMan1233 · 4 pointsr/Ubuntu

It will take too long to explain how Linux handles such a thing differently. Read this book.

Every one should read it. I'm not a sponsor, dude!

u/remimms · 4 pointsr/linux4noobs

I found the book The Linux Command Line to be very useful. Good luck on your CEH!

u/CptTritium · 4 pointsr/sysadmin

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

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

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

u/Grayson_the · 4 pointsr/DataHoarder

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

u/Shark_Kicker · 4 pointsr/javascript

FFS... just stop. This is NOT a Mediator Pattern

Three articles that are either partially or completely wrong in three days? Just. Stop. Go get this book... read it... then try again.

You can't just "invent" patterns and name them after existing patterns because you named one of your objects "mediator".

A Mediator Pattern in JS explained by someone who knows what he's talking about

u/illithoid · 4 pointsr/salesforce

I'll be honest with you, I don't think Head First Java would be a good choice, however DO READ Clean Code. I also suggest Design Patterns: Elements of Reusable Object-Oriented Software and Working Effectively with Legacy Code. The first is a classic MUST READ for anyone in software development. It present numerous challenges that most of us will face when developing solutions, and gives you the design patterns you will need to solve them. The second is great for learning how to fix your predecessors shitty code, you'll need this one. If you haven't already, look up Bob Buzzard and Andy Fawcett. These two guys are my favorite SFDC Dev Bloggers. I also suggest watching any Salesforce Webinar that has anything to do with code, especially security stuff.


Practice makes perfect, except for us there is no perfect, just better. Know your best practices and live by them. With everything you do ask how can I make it better? Faster? More efficient? Do I even need code, or will Workflow/Process Builder/Flow do? How can I write code, so that an Admin can customize it without any code?

> Based on code reviews--my code is pretty good, with good logic and pretty well laid out.

This is actually VERY important, having good logic is obviously crucial, but being well laid out is a kind of hidden requirement with code. You or somebody else will eventually need to maintain your code, if it's laid out well it should hopefully be easy to read and maintain.

When you write code do your best to incorporate declarative features so that further customization can be done without code (I know I said this earlier, but I think it's important). Need to write some code that uses an arbitrary set of fields, consider using Field Sets. An Admin can add/remove them without code. Maybe use a Custom Setting, or Custom Metadata to map fields to values.

Learn how to use Describe calls for everything. Need to write some code that catches dupes and merges them? Don't hard code the values, then nobody will be able to remove or add fields without updating code. Instead use Describe calls, now you get every field on the object forever. Need to remove a field from an object no problem. Need to add a field to an object no problem. Does your losing record have child records that need to be reparented? Don't hard code, use Describe calls to get all sObjects with a Child Relationship. Use Describe to find out if it can be directly reparented or if it needs to be clones (CampaignMembers can't reparent a LeadId to a new Lead. You MUST clone and add the new Lead Id).

How much do you know about HTML? CSS? JavaScript? JQuery? Visualforce? Learn 'em. Lightning is coming, and these are going to be more important than ever (except maybe Jquery).

Practice, practice, practice. One coding assignment per month isn't that bad, but if you get some work done early and you have an hour or two to spare, work on a side project. Can you think of something in your company that could be automated, spin up a Dev Org and give it a shot. Maybe your Sales people could use a new VF page for entering information just a little quicker.

Always seek to improve your code. Always seek new ideas and better ways of doing things.

Trailhead is good, do all the coding ones you can find, it's more practice!

u/soundslikeponies · 4 pointsr/programming

You can always read books. Textbooks are much better to read when you're free to browse and pick out whichever ones you like. You can get a surprising amount of reading done just by reading on the bus, on the can, and whenever you've got nothing better to do.

A popular stack overflow answer has a pretty good list. You can preview the introduction of most books on amazon.

People like to champion the internet as "oh, you can learn anything on the internet!" Which is true. But you can learn it much faster and better from a book (generally speaking).

Books provide a long format which has a chance to build upon itself. Also, everything is collected in one place for easy access. More developers ought to sit down and read good books.

u/Kaelin · 4 pointsr/compsci

Study design patterns and read books by the masters.. Find the books that are recognized by the community as "the best". For example "Effective Java" is one of the best books on writing Java beyond the basics.

The Pragmatic Programmer: From Journeyman to Master


http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/ref=sr_1_1?s=books&ie=UTF8&qid=1374154408&sr=1-1&keywords=pragmatic+programmer

Design Patterns


http://www.amazon.com/Design-Patterns-Elements-Object-Oriented-ebook/dp/B000SEIBB8


http://www.amazon.com/gp/product/020161586X/ref=oh_details_o05_s00_i00?ie=UTF8&psc=1

u/ZioYuri78 · 4 pointsr/unrealengine

I have the first edition and yes, it worth a read, keep in mind that it explain how game engines works and not how to make a game engine.

After reading it you will not be a master with UE4 but you will undertstand why UE4 do things in a certain way.

Another book you have to read (and is mentioned in your link) is the Game Programming Patterns book, i have the physical copy and it is awesome, read it after the GoF Design Patterns book, is a masterpiece combo.

EDIT:

Also two sites i want to suggest:

Learning Modern 3D Graphics Programming, is a great tutorial about OpenGL basics.

The Book of Shaders, great to learn how shaders works.

u/in0pinatus · 4 pointsr/rails

Despite the title, this isn't the Design Patterns[1] State Pattern.

In the State pattern, a context object (such as an order) changes its behaviour by delegating all state-specific methods to another object that implements the behaviours for that state. When the state is changed, the context object switches to using another state object - which will have the same interface, but the implementation is state specific.

So, taking the example in this article, an Order object chooses between state objects of Order::State::Cart, Order::State::Cancelled etc. It then delegates business methods like "add item", "refund", or "ship it" to the state objects.

This takes care of the expectation that an order still in the shopping cart state behaves differently to a cancelled order, but without having Order fattening itself with all the knowledge required.

So as a refactoring this is helpful in opening up a context object for extension without bloat, by localizing and partitioning that state-specific behaviour; there are other benefits besides[1].

What the State Pattern isn't: a nice DSL to describe your state machine's states and transitions and callbacks. That's definitely a utility offered by state machine gems, but labelling it the State Pattern is off in the weeds and missing out on the real OO refactoring.

[1] Design Patterns; Gamma/Helm/Johnson/Vlissides, 1995. pp305-313

u/nanojava · 4 pointsr/cscareerquestions

Most of the design patterns introduce by GOF (gang of four) is still applicable today. Buy and read this book

u/spankmylion · 4 pointsr/CompTIA

It's never too late, you just have to show your willingness to learn. That being said, you should read the CompTIA A+ Certification All-in-One Exam Guide, 8th Edition (Exams 220-801 & 220-802) https://www.amazon.com/dp/007179512X/ref=cm_sw_r_awd_-Wznub1NKQ5X0. This book is very in depth for someone who doesn't have a lot of experience.

Also watch Professor Messer's A+ videos on YouTube. http://youtu.be/v6sJjIQzdbE

Also, go through the posts in the sub. You will find a lot of helpful information within it.

u/MattTheFlash · 4 pointsr/sysadmin

College made me a more well-rounded individual. Science, philosophy, literature, mathematics, history, all these things helped me learn how to think.

College did absolutely nothing whatsoever to teach me how to be a systems administrator.

Want to get ahead in IT, out of that lowly helpdesk position? Here's what you do:

Get this book. Study it for a few months. Next, save a few hundred dollars and schedule an appointment to take the A+ Certification.

Congratulations, you are now professionally qualified to work a series of contract jobs or maybe a full time position fixing computer hardware all day. You will get these jobs by spending a lot of time on www.monster.com and filling out your resume completely. Update that resume every few days by moving words around to ensure your resume continues to be on the top of the new resumes list for recruiters to see. Congratulations, you've just advanced your career. It's still not a lot of money, but it's more interesting, and pays more. Regardless, you will be making significantly more money than at a helpdesk, and it's a lot less frustrating.

After this, I recommend you get this book and repeat the process. I should caution you, the Network+ is more difficult than the A+. With an A+ and a Network+, a hiring manager deemed me qualified for entry level at a web hosting company, where my career really took off. I learned everything I could, focusing on Linux administration.

Why Linux? Because there's too many Windows administrators and not enough Linux administrators. Your opportunities will be more lucrative and easier to obtain because there will be less competition.

My certifications, in order of receiving:

  • A+

  • Network+

  • Security+

  • RHCSA

  • RHCE

u/Chaise91 · 4 pointsr/CompTIA

I just bought this book the other day and begun reading it. If you have any understanding of computers at all, it will be very easy to understand (so far).

u/Darkness12 · 4 pointsr/hardware

It may not be a source as simple as just a link, but I have been studying for the CompTIA A+ exam and they go over a lot of this stuff pretty well. If you get any of the textbooks or look up some of the online study guides, they will have a decent amount of information on these topics.

This is the textbook I have been reading recently. It has a ton of information about the different technologies and standards involved in each component, and can really make those specifications you see on your hardware make sense.

I have been really happy with my new-found ability to look up something complex, like a motherboard, and understand the advantages and disadvantages almost immediately.

Professor Messer also has a popular guide for the A+ in a pdf format, but I have not used it and cannot vouch for it being what you seek.

Good luck!

u/slkth · 4 pointsr/linuxadmin

These might be goods books:

  1. How Linux Works, 2nd Edition (What Every Superuser Should Know) by Brian Ward
  2. UNIX and Linux System Administration Handbook (5th Edition) by Evi Nemeth, Garth Snyder, Trent R. Hein & Ben Whaley

    Book 1 I have hard copy is a quite elobarate but not too big and quite cheap. (got it for 18 dollars)
    Book 2 Is an extensive UNIX bible I really would like to have. It costs more but it's very big. A PDF might come handy.
u/pat_trick · 4 pointsr/sysadmin

If you end up in the Linux / Unix world, I'd recommend the Unix and Linux System Administration Handbook...which is apparently due out in a 5th edition in just a few days!

https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/

u/YoYossarian · 4 pointsr/technology

Here's one that I just ordered. It comes with a recommendation from Elon Musk as well. This is a subject Kurzweil discusses at length in his books, though his approach is far more optimistic. He avoids the cataclysm by saying humans and AGI will work together as one, but his point basically concedes humanity's destruction if we don't cooperate/merge.

u/narwi · 4 pointsr/Futurology
u/MrPowersAAHHH · 4 pointsr/learnprogramming

I made some Python code quizzes that teach by example. The quizzes follow The Little Schemer teaching style.

u/DrStrngeluv · 4 pointsr/lisp

I second Practical Common Lisp, and may I recommend ANSI Common Lisp and The Little Schemer (I know its scheme, but when I did the exercises I did them in LISP).

u/jbos1190 · 4 pointsr/learnprogramming

There is now a 4th edition, which has a different name.

u/khafra · 4 pointsr/programming

Since you're fuzzy on the whole "Turing Complete" concept, I wouldn't start at the toy app level. The best place for you is probably The Little Schemer with javascript transformations from http://javascript.crockford.com/little.html applied (Unless you want to get yourself an actual Scheme implementation, which would be fantastic). Also, if you work through both that, and "Structure and Interpretation of Computer Programs," you'll have super-high nerd cred.

u/quiltedvino · 4 pointsr/C_S_T

Once you sober up from all that weed, you might want to read this - it's basically a cogent version of what you're talking about here.

u/joe_the_bartender · 4 pointsr/AskReddit

Fantastic book by Nicolas Carr called "The Shallows" which deals heavily with how technology has influenced how we think, perceive, and retain information. link is here!

*edit link fixed

u/IllusiveObserver · 4 pointsr/socialism

I am now. I was aware of his famous interview on Crossfire with William Buckley, but I didn't know his politics were expressed in his music.

I've read too much about media ecology to stomach the state of telecommunications as it stands today. While I primarily mentioned the capitalist appropriation of TV in my first comment, I think its much more than that. Even when we adopt socialism and kill advertising, TV must be eliminated as a medium of communication. It is inimical to rational thinking. It is inimical to learning and truly understanding. The way the brain processes information from the medium is inherently insidious.

Similar arguments can be made about computers and the internet. I'm not against telecommunications completely, but I am extremely cautious of new technology. Read these books, and you'll be scared of even touching your phone.

The Shallows

Alone Together

The Digital Divide

Distracted

The Dumbest Generation

As an engineer who became a socialist in large part because I saw that technology was being used to exploit the people I want to help, I can tell you that the question posed to mankind will be that of our relation to technology. We will already have tackled that problem indirectly when we deal with climate change, but that is really a problem of capitalism. We will have to confront it honestly when capitalism falls.

u/funkybside · 4 pointsr/booksuggestions

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

u/kevinlamonte · 4 pointsr/linux

I both agree and disagree.

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

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

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

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

u/BUTTS_L0L · 4 pointsr/todayilearned

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

u/deaddodo · 4 pointsr/IWantToLearn

The Make books for electronics will get you a decent groundwork for the practical application side of things. Practical Electronics for Inventors will you get you covered on the theory side of things.

u/Avatarbaali · 4 pointsr/ccna

You're looking for books that cover "Exam 100-105 & Exam 200-105" or "Exam 200-125 (combined exam)".

Odom
https://www.amazon.com/Routing-Switching-200-125-Official-Library/dp/1587205815/ref=sr_1_1?ie=UTF8&qid=1482616909&sr=8-1&keywords=ccna+library

Lammie
https://www.amazon.com/Routing-Switching-Complete-Study-Guide/dp/1119288282/ref=sr_1_2?ie=UTF8&qid=1482616937&sr=8-2&keywords=200-125+ccna

I'm currently using Odom's book. It's a bit heavy in context but once I got used to it after a few chapters its been great.

u/s-ro_mojosa · 4 pointsr/learnpython

Sure!

  1. Learning Python, 5th Edition Fifth Edition. This book is huge and it's a fairly exhaustive look at Python and its standard library. I don't normally recommend people start here, but given your background, go a head.
  2. Fluent Python: Clear, Concise, and Effective Programming 1st Edition. This is your next step up. This will introduce you to a lot of Python coding idioms and "soft expectations" that other coders will have of you when you contribute to projects with more than one person contributing code. Don't skip it.
  3. Data Structures and Algorithms in Python. I recommend everybody get familiar with common algorithms and their use in Python. If you ever wonder what guys with CS degrees (usually) have that self-taught programmers (often) don't: it's knowledge of algorithms and how to use them. You don't need a CS degree (or, frankly any degree) to prosper in your efforts, but this knowledge will help you be a better programmer.

    Also, two other recommendations: either drill or build pet projects out of personal curiosity. Try to write code as often as you can. I block out time three times a week to write code for small pet projects. Coding drills aren't really my thing, but they help a lot of other people.
u/Orthak · 4 pointsr/mylittleandysonic1

The first thing that I would say is: If you're thinking or making something bigger than a Pong clone, dial it way back. Your not going to make something fantastic, or Hell even good, straight out of the gate. Think of one idea that you have, and stick only to that. Make something very small, you can always build on it as you progress.

As for resources, they're limitless. There are tons of engines, assets, tutorials, book, and anything else you'd want. I'll make a small list of things here to get you started, but I strongly suggest looking for other things that you'd need on your own. Research and critical tinging is paramount in this hobby/profession.

Engines:

  • Unity - Very powerful and free 2d/3d engine. Uses mainly a JavaScript dialect and C# for scripting. The asset store is a great built-in resource
  • GameMaker - Surprisingly powerful 2d only engine. Uses it's own language for scripting, and has excellent drag-n-drop scripting. It's been a while since I used it, but it was great from what I remember.

    Art:

  • OpenGameArt - I've used tons of assets from this site. They range in any quality/type that you could need.
  • Kenny.nl - Wonderfull asset packs, I've used one of their UI packs and it was great. I think these are also the guys that post free stuff to /r/gamedev every now and then.

    Music/Sounds:

  • FreeSound.org - Great resources. I've used many sounds from here, and they usually have just what I need.

  • as3sfxr - Create your own chipsounds! I've mad a bunch of stuff here if I needed something that sounded a bit less organic.

    Tutorials:

  • Cooking With Unity - Is fantastic. I've followed almost all of these, and I loved them. He does a really good job explaining the concepts, and the scale in difficulty isn't too seep.

    Books:

  • A Book of Lenses - I haven't gotten too far into it, but what I've read so far is great. Wonderful info on game design.

  • Game Programming Patterns - This is an awesome book to get into the programming aspect. The examples are written in C++, but can be implemented in any language. Also: The web version is totally free!

    That's about all I can think of quickly. It should be enough to get you off the ground.

    Have fun, and good luck!
u/RoguelikeDevDude · 4 pointsr/gamedev

Book suggestions? Now that's my jam.

Out of all the books i've read, here are my recommendations regarding game programming:

Eric Lengyel's Books (only one out so far). This is aimed at game engine development, but if the 2nd onward are as indepth as the first, they will be amazing fundamental knowledge. Also, they're not thick, and jam packed with information.

Game Programming Patterns. The only book that comes more recommended than this is the one right below it by Jesse Schell. This book is fantastic, but you should write one or two small games to really get the most out of this book. You can also read it online on his website free, but then you don't get a pic of him and his dog on the back cover.

Book of Lenses. This is your intro/intermediate dive into game design. There are a lot of game design books, if you only read one, it should be this one.

Gane AI By Example. This book is a hodgepodge of fantastic techniques and patterns by those in AAA. There are other books on the series (like Game AI Pro) which are similar, but in my opinion (at least when I read AI PRO 3), they're not as good. But more knowledge is never bad.

Truthfully, as I sit here looking over all my books, those are the only ones i'd consider mandatory for any seasoned developer. Of course plenty of developers get by without reading these books, but they likely pick up all the principles listed herein elsewhere, in bits and pieces, and would likely have benefited having read them early on.

Here are a few others that I do recommend but do NOT consider mandatory. Sorry, no links.

Unity in Action. Personally, I recommend this or a more interactive online course version (udemy.com/unitycourse) if you want to learn unity while having a resource hold your hand. Having read the book, taken the course, AND taken Unity's own tutorials on the matter, i'd order them in order from Course being best, book second, videos from unity third. But none of them are bad.

Game Engine Architecture. This is the king for those who want a very broad introduction to making a game engine. It comes highly recommended from nearly anyone who reads it, just so long as you understand it's from a AAA point of view. Game Code Complete is out of print and unlikely to be revisited, but it is similar. These are behemoths of books.

Realtime rendering. This is one I haven't read, but it comes very highly recommended. It is not an intro book, and is also over 1000 pages, so you want this along side a more introductory book like Fundamentals of computer graphics. Truth be told, both books are used in courses in university at the third and fourth year levels, so keep that in mind before diving in.

Clean code. Yeah yeah it has a java expectation, but I love it. It's small. Read it if you understand Java, and want to listen to one of the biggest preachers on how not to write spaghetti code.

Rimworld guy, Tynaan sylvester I believe, wrote a book called Designing Games. I enjoyed it, but IMO it doesn't hold a candle to Jesse Schell's book. Either way, the guy did write that book after working in AAA for many years, then went on to create one of the most successful sim games in years. But yeah, I enjoyed it.

Last but not least, here are some almost ENTIRELY USELESS but interesting diagrams of what some people think you should read or learn in our field:

https://github.com/miloyip/game-programmer

https://github.com/utilForever/game-developer-roadmap

https://github.com/P1xt/p1xt-guides/blob/master/game-programming.md

u/GlitteringSkeleton · 4 pointsr/javahelp

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

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

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

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

u/TwistedStack · 4 pointsr/compsci

You want this if you want the most complete set available. You can also just get volumes 1-3 and wait until all of volume 4 is done. (Hopefully Knuth will get to finish volumes 4 and 5)

u/HolidayDragonfruit · 4 pointsr/computerscience
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/e7hz3r0 · 4 pointsr/cscareerquestions

I haven't been in or done a junior dev interview in a long time so I can't speak to whether most companies ask algorithm questions these days.

What I can say is that many of the mid- and senior-level interviews I've been in do. This means, to me at least, that you should learn this stuff even if you don't get asked it in a junior dev interview.

As as self-taught developer, you have shown that you've got the drive and curiosity to learn a lot of stuff enough to do useful work. That says something. So bravo!

Practicing is a great idea. However, if you're constantly looking at the hints before coming up with your own answer, that's probably not as helpful. It sounds like you should learn more about algorithms as a whole topic.

To shore up your weaknesses with algorithms I'll suggest a few resources that I've come across over the years. Since I went the traditional CS degree route, I haven't used these personally but I know many people who recommend them:

u/Pope-Urban-III · 4 pointsr/Catholicism

You may be interested in reading Incompleteness, and then consider how if we can convert Scripture to a formal system, we must have either an inconsistent one, or an incomplete one. The first is clearly false, but the second destroys Sola Scriptura.

Oh, and snide response: yes.

u/ginger_beer_m · 4 pointsr/dogecoin

If you just try to eyeball patterns from historical charts, I guarantee you will see it because that's just what the brain has evolved to do: spotting patterns well (e.g. Jesus on a toast), even when it's actually due to random chance. That's also why most of the so-called technical 'analysis' are bullshit.

Instead, approach this in a systematic and principled manner. You can try check out this book to get an idea what I'm talking about: Pattern Recognition and Machine Learning. This is the standard grad-level introduction to the field, but might be rather heavy for some. An easier read is this one. You can find the PDF of these books online through some searching or just head to your local library. Approaching the problem from a probabilistic and statistical angle also lets you know the extent of what you can predict and more importantly, what the limitations are and when the approach breaks down -- which happens a lot actually.

TL;DR: predicting patterns is hard. That's why stats is the sexy new job of the century, alongside with 'data science' (hate that term uuurgh).

u/Jimbo_029 · 4 pointsr/ECE

Bishop's book Pattern Recognition and Machine Learning is pretty great IMHO, and is considered to be the Bible in ML - although, apparently, it is in competition with Murphy's book Machine Learning: A Probabilistic Approach. Murphy's book is also supposed to be a gentler intro. With an ECE background the math shouldn't be too difficult to get into in either of these books. Depending on your background (i.e. if you've done a bunch of information theory) you might also like MacKay's book Information Theory, Inference and Learning Algorithms. MacKay's book has a free digital version and MacKay's 16 part lecture series based on the books is also available online.

While those books are great, I wouldn't actually recommend just reading through them, but rather using them as references when trying to understand something in particular. I think you're better off watching some lectures to get your toes wet before jumping in the deep end with the books. MacKay's lectures (liked with the book) are great. As are Andrew Ng's that @CatZach mentioned. As @CatZach mentioned Deep Learning has had a big impact on CV so if you find that you need to go that route then you might also want to do Ng's DL course, though unlike the courses this one isn't free :(.

Finally, all of the above recommendations (with the exception of Ng's ML course) are pretty theory driven, so if you are more of a practical person, you might like Fast.AI's free deep learning courses which have very little theory but still manage to give a pretty good intuition for why and how things work! You probably don't need to bother with part 2 since it is more advanced stuff (and will be updated soon anyways so I would try wait for that if you do want to do it :))

Good luck! I am also happy to help with more specific questions!

u/blackkettle · 4 pointsr/math

take a look at Pattern Recognition an Machine Learning by Bishop,

http://www.amazon.com/Pattern-Recognition-Learning-Information-Statistics/dp/0387310738

it's an excellent text, though not for the faint of heart. just the first chapter should provide you with a great answer to your question.

u/AndrewRichmo · 4 pointsr/nonfictionbookclub

This is the list I have right now, but I might take something off before tomorrow.

Walden – Henry David Thoreau

The Blind Watchmaker – Richard Dawkins


The Shallows: What The Internet Is Doing To Our Brains – Nicholas Carr

Why Leaders Lie: The Truth About Lying in International Politics – John J. Mearsheimer

Voices from Chernobyl: The Oral History of a Nuclear Disaster – Svetlana Alexievich

u/Julian-Delphiki · 3 pointsr/scheme

I learned using Dr Racket and this little book: http://www.amazon.com/exec/obidos/ASIN/0262560992/ref=pd_sim_books/103-5471398-9229403

The little schemer is great.

u/lordlicorice · 3 pointsr/compsci

The absolute definitive book on multithreading in Java is the fantastic Java Concurrency in Practice. Just read it straight through.

It sounds like you have some more basic issues with understanding what threads even are though. Some of the other operating system focused resources might be a better place to start.

Did you go to college? I'm really surprised you're a programmer and you don't even know what a stack is.

u/SofaAssassin · 3 pointsr/cscareerquestions

You probably won't need to do anything until you actually start working, because you don't know what the tech stack of your company looks like yet.

For me, the generic Java-centric books that I think every Java developer should read are the following. They are the only Java books I did not end up burning/shredding:

  • Java Concurrency in Practice - Written by Brian Goetz, who architected and implemented large portions of the java.util.concurrent API that was introduced in Java 5, which makes writing concurrent code easier depending on your use cases.

  • Effective Java- Written by Joshua Bloch, who implemented major portions of the Java API. This is a lot of best practices for Java which are still applicable today (the book is 6 years old).

    Beyond either of those, though, I really wouldn't care about any other dead tree Java book. You'll probably spend significantly more time learning internal libraries and 3rd party stuff like Spring or Guice or Apache Commons or whatever your company uses.
u/GeorgeMaheiress · 3 pointsr/java

A good resource is Java Concurrency In Practice. Sounds like you'd be interested in Item 5.3: Blocking Queues and the Producer-consumer Pattern. Unfortunately I can't share it with you as it's copyrighted, but here's the short code snippet from it:

Producer & Consumer:


public class FileCrawler implements Runnable {
private final BlockingQueue<File> fileQueue;
private final FileFilter fileFilter;
private final File root;
...
public void run() {
try {
crawl(root);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}

private void crawl(File root) throws InterruptedException {
File[] entries = root.listFiles(fileFilter);
if (entries != null) {
for (File entry : entries)
if (entry.isDirectory())
crawl(entry);
else if (!alreadyIndexed(entry))
fileQueue.put(entry);
}
}
}

public class Indexer implements Runnable {
private final BlockingQueue<File> queue;

public Indexer(BlockingQueue<File> queue) {
this.queue = queue;
}

public void run() {
try {
while (true)
indexFile(queue.take());
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}

And startup method:


public static void startIndexing(File[] roots) {
BlockingQueue<File> queue = new LinkedBlockingQueue<File>(BOUND);
FileFilter filter = new FileFilter() {
public boolean accept(File file) { return true; }
};

for (File root : roots)
new Thread(new FileCrawler(queue, filter, root)).start();

for (int i = 0; i < N_CONSUMERS; i++)
new Thread(new Indexer(queue)).start();
}

u/thehollyhopdrive · 3 pointsr/java

Two Java specific books you should read cover to cover (and keep around as an effective reference) are Effective Java and Java Concurrency in Practice, and you should also seriously consider reading Design Patterns. The examples in it aren't written in Java but they hold for all OO languages.

u/sh0rug0ru · 3 pointsr/java

If you want a deeper understanding of concurrency, the go-to book is Concurrency in Practice.

For Spring, the go-to book is Spring in Action.

The best book I've read for OOP is Agile Patterns, Practices and Principles for C#. The first 1/3 of the book is Agile stuff, but the rest is a wide variety of topics in OOP. There used to be a Java version of this book, but the newer version is C#. But the C# code is nothing to different than what you would do in Java.

u/_dban_ · 3 pointsr/java

Java Concurrency In Practice is the book you want to read.

u/KiteWatcher · 3 pointsr/programming

I'm not too sure about a general purpose book, but if you are interested in learning about Java's concurrency stuff I'd recommend Java Concurrency In Practice. I'm sure you'll see threading in the corporate world and this book was actually recommended to me by a Google employee who was a guest professor for a semester.

u/kraftvgs · 3 pointsr/javahelp

We use it at work for asynchronous service calls. We deal with heavy amounts of data sometimes requiring hundreds of separate service queries. If we do them sequentially it takes a solid minute, but if we do them asynchronously we can really shave that time down. As others have said, though, it adds a LOT of complexity. It is also difficult to write unit tests for. If you are genuinely curious I would recommend Java Concurrency in Practice to learn more about it.

u/zzyzzyxx · 3 pointsr/learnprogramming

> Is it even possible to get jobs in software development with an EE degree and quasi-software development experience?

Yes, as I have my degree in Electrical and Computer Engineering, which included maybe 3-4 "proper" CS courses, and I was employed as a full-time software developer right out of college.

> So how do I fill the large gaps in general Computer Science knowledge?

I think it comes down to "read and do". Read blogs, books, and maybe even code from reputable sources. Try new things, like languages, paradigms, and frameworks. If you have some idea about the gaps in your knowledge, i.e. you know what you don't know, then start searching there. Begin at Wikipedia, look at the sources and related links, and just keep pressing on.

In general I find it's pretty easy to learn about new things. If you keep reading, you'll eventually come across something you didn't know or hadn't heard of before, and probably more often than you'd think. Sometimes it's just worth knowing that something exists that you can learn about later when you actually need it. You definitely don't have to learn all facets of programming in depth.

Since you mentioned algorithms, maybe check out TAOCP. The first volume is about algorithms. It is language agnostic and based heavily on math, though you don't need a math degree to follow along by any means. It's surprisingly readable, too. *Though that doesn't mean you should sit down and read it like a novel.

u/MrNetTek · 3 pointsr/computerscience

CS is almost pure math, especially beyond the freshman year. You can learn to code with almost no advanced math. So, what's up with that?

Numerous---everyday---apps are actually very simple coding, which do not require much math. This lures people who code into thinking math is not required in programming. That is a false assumption. This is the rub...anything advanced in technology requires equally advanced mathematics. AI, machine learning, data science, robotics, graph theory, geometric modeling, parallel architectures, electronics, telecom transmissions, cryptography, etc., etc., etc., all require advanced mathematics skills. The list goes on forever.

You'll never be a great programmer without at least a strong foundation in discrete mathematics (maybe you'll be a elementary app coder or maybe you'll be a low-level developer). Anyone saying you don't need math in CS is wrong. Anyone saying CS is easy is mistaken. For those that claim all you need is 3rd or 4th grade math, are 3rd or 4th grade coders. At least 1/3 of people drop out of computer science degrees---stating it was just too difficult.

I suggest to everyone to pick up The Art of Programming, by Knuth (and/or Introduction to Algorithms, from MIT Press). Come back and tell us if you think CS is hard, and...if math is required in programming. Find a quiet corner to cry in....the books are as intense, as they are inspirational.

My advice? Take a few discrete mathematics courses. You may have a job one day that requires you to know the cost of nodes in a tree, based upon the mathematics of recursion and exact powers: Example - That isn't 3rd grade math. Stare at this gem for a while: https://www.tug.org/texshowcase/cheat.pdf

The good news is...you live in the best possible era to learn CS. Millions of resources are at your disposal. You just need to be dedicated.

-MrNetTek

u/Bayequentist · 3 pointsr/algorithms

The Art of Computer Programming - this is a 4-volume series (4A is out; 4B, 4C, 4D coming soon; 5 planned for 2025). It'll take a lifetime to master everything written in this series :)

u/PLLOOOOOP · 3 pointsr/MachineLearning

Is this the Bishop book you guys are talking about?

u/samuelm · 3 pointsr/mlclass

He's talking about the distribution of the error of y not J(or the distribution of the probability of the function y given x). It's explained in the lecture notes, and in page 29(figure 1.16) of Bishop's book there's an illustration that switched on the bulb for me(althought I found the book almost incomprehensible). You can look it using the amazon preview http://www.amazon.com/Pattern-Recognition-Learning-Information-Statistics/dp/0387310738/ref=sr_1_1?ie=UTF8&qid=1318610381&sr=8-1#reader_0387310738

u/mr_dick_doge · 3 pointsr/dogecoin

I'm sceptical of Elliot wave analysis. The reason is, I do data analysis at work (although for other domains) , and in any stochastic system, it is easy for a vague model like the EW to fit any kind of patterns in the observed data (i.e. the EW 'model' underfits a lot). Worse because EW is prescriptive and it's basically fitting model by eyes. How well does it fit? Does it offer any meaningful predictive confidence? We don't know. The human brain excels in pattern recognition, so you tend to see patterns wherever you look, this is another reason why many so-called technical 'analysis' methods that try to eyeball patterns is a lot of bullshit.

Instead, an entire field on pattern recognition has been developed on a statistically rigorous background (here's a good book to start with) and applied on many practical problems with much success, e.g. the self-driving car, google translate, siri, etc. For me personally, if I were to try to do price prediction, I'd start with using a neural net or some kind of regression-based method using Gaussian Process or something. Section 4 of this paper seems to provide a decent review of the various methods applicable for price prediction. They would require a lot of tuning, and most likely they won't work well in a market as manipulated as crypto where a lot of the data points are essentially noise.

Having said that, it's fun to hear about 'predictions' where dogecoin will go to the moon :P

TL;DR: predicting the future is hard. Dogecoin will go to the moon.

u/ChristianGeek · 3 pointsr/learnmachinelearning

Amazon links to books mentioned (no affiliate). Warning: A lot of high textbook prices here...look for eBooks and/or used copies of earlier versions:

Introduction to Mathematical Statistics (Hogg, McKean, & Craig)

All of Statistics (Wasserman)

Statistical Inference (Casella & Berger)

Pattern Recognition and Machine Learning (Bishop) (only reasonably priced as an eBook)

Hitchhiker's Guide to Python

u/G-Brain · 3 pointsr/math

I know nearly nothing about this topic, but I find it extremely interesting and I've done some searching.

Two more lectures:

u/Dr_Terrible · 3 pointsr/bestof

If you enjoyed the article, Nick Carr wrote a follow-up book called The Shallows which expands greatly on his argument. One of the best books I read last year.

u/Kushain · 3 pointsr/techsupport

For A+ I always recommend Mike Myers' book and Professor Messer's videos.

CCNA, I used Wendell Odom's books and the CBT Nuggets videos.

u/Deightine · 3 pointsr/AskTechnology

If you are going to be a one-man IT solution, your work will break down four ways, each of which are a specialty unto themselves and will require different amounts of your effort at different times of the year. I'm going to go into a bit more than reading material, because frankly, you should have some warning about what the future might bring.

  • Hardware
  • Software
  • Networking
  • Inventory Management

    All four will require setup, upgrade, and troubleshooting in event of breakdown or customer complaint. The exception here is that your other coast's IT department probably has an inventory system already in place, you'll just want to get to know it well. Also, learn all about how your company handles shipping (which shipper they use, how they charge, who has authority to approve shipping, etc) and what security rules are in place for storing company equipment and data.

    In terms of Hardware, get and read just about any A+ book. It's going to be boring--I warn that in advance--but I've learned a ton of useful things from every A+ book I've looked at. The best one I've read is CompTIA's own A+ book because of how well put together it is, plus its written by the guy who writes the tests. There are a lot of things you may never use, but it makes a great reference, and your IT department might cover certification. Which becomes a great argument point for receiving a raise later.

    As for Software... that will change based on every software package you ever handle. Ask the distant IT team if they have a knowledgebase, and if so, what it will take to access it. If they don't, compile yourself a bookmarks list for the forums of every piece of software you will use regularly. If its Microsoft software, Google will work just fine. The problems tend to be so widespread that answers will jump up. They won't always work, but it'll help you troubleshoot. Also find out how the company handles its software licenses. That can be a real headache.

    Now the networking... That gets a bit more complicated. Depending on what your office is using for their network, it could be as easy as flipping power on and off on a few boxes hooked up to a broadband connection. If its more complicated, you'll want to learn about what solution is used for network administration. Good odds if its a major company that they'll be using Windows servers and Active Directory. Find out and learn about their account management solution. As for network hardware... you'll probably need to lean on the bigger IT team for awhile until you get comfortable with it. Proactively learn about routers, switches, domain controllers, DNS servers, and anything their Wikipedia pages link to that doesn't read like a Latin textbook. Most of your job won't be dealing with the theory, it will be trying to figure out where in the hose it is kinked, so that you can keep the Internet flowing and computers talking to each other. Learn about LAN cables and the different speeds, that'll help as well.

    For inventory, well, hopefully that's all in place. If not, secure a locked space if one isn't already in use. Talk to whoever is in charge of your facility and at least try to get a secure closet with a lock. You'll probably want to request a small supply of replacement parts or whole computers, dependent on what your overall IT department uses as their policy. Find out if they lease the hardware, and track everything you receive, ship, or disburse in a log. Keep that log backed up somewhere really safe. Track inventory info, serial numbers, company designations (if they're tagging hardware), dates of activity, and notes on things like shipping numbers. This will save your butt often.

    Good chance that for the first while, your job will be the same every entry level IT person ends up doing for awhile... You'll be someone else's hands. You'll have a problem, you'll try to fix it, you'll find out you can't or don't have privileges to do it, then you'll ask for help... then that person who would normally fly out to you will have you do the things on your end that they normally would, so they can finish things at their end. You'll be their hands in place. It can feel like monkey work, but eh, it can be a lot worse. You could be Migrating XP machines to Windows 7 for 3-10 months on 3rd shift, locked in a basement or storage unit. Folks all across North America have been enjoying that experience over the past 2-3 years.
u/kramer314 · 3 pointsr/linux

https://debian-handbook.info/ is super high quality (and free! although if you have the money I think it's well worth donating and / or purchasing a hard copy)

I also like https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/ and https://www.amazon.com/How-Linux-Works-2nd-Superuser/dp/1593275676/

u/uptimefordays · 3 pointsr/sysadmin

In no particular order:

u/OhCmonMan · 3 pointsr/linuxhardware

Don't worry about compatibility, get Ubuntu here (for example): https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-windows#0

Install it, play around and read some stuff. /r/linux4noobs /r/linux_tutorials, /r/linuxquestions for example. Or watch some stuff https://www.youtube.com/watch?v=bju_FdCo42w&list=PLtK75qxsQaMLZSo7KL-PmiRarU7hrpnwK
or go crazy (highly recommended) https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554

u/Medicalizawhat · 3 pointsr/learnprogramming

The easiest way to get going is to install Linux in a VM. You can do a lot in a little VM lab, spin up multiple machines, make them talk to each other, mess around with configuration management etc. Just be sure to give each machine a tiny amount of memory, maybe 500MB to a Gig.

Personally I'd recommend Ubuntu as a good first start. This is a pretty good book to get started with Linux and System Administration.

If you want to spin up a machine that is accessible from the Internet you can use a provider like AWS pretty cheaply.

Some ideas of projects involving a server could be:

  • host a website
  • set up a mail server
  • build a home media server
u/Clemlar · 3 pointsr/sysadmin

Honestly, this is by far one of the best books I’ve read and should help get you started:

UNIX and Linux System Administration Handbook https://www.amazon.co.uk/dp/0134277554

u/almostdvs · 3 pointsr/sysadmin

First, read our Wiki. It is very thorough and answers a lot of these common questions such as

day to day? The Practice of System and Network Administration
And the topical reference books listed below.

Books to help in shaping a sysadmin? The above &:
The Phoenix Project
Time Management for System Administrators


Topical Books I see mentioned often and have been very helpful to me:
Powershell in a month of lunches
Learn Python the hard way
Unix and Linux System Administration Handbook
Windows Server 2016: Inside Out

Group Policy
AbsoluteBSD
FreeBSD mastery:ZFS
CCNA
RHCSA/RHCE
Pro Puppet
SSH Mastery

On my docket:
FreeBSD Mastery: Advanced ZFS

Michael W. Lucas and Thomas Limoncelli are very good sysadmin writers, you can't go wrong with a topic they have chosen to write about.

Most of the *nix stuff assumes a baseline knowledge of how to use a unix-based system. I learned as I went but did pick up an old copy of Unix Visual Quickstart Guide not too long ago at a used books sale, which seems like a good starting place for someone overwhelmed with sitting at a terminal and being productive.
I notice I don't have any Virtualization books, perhaps someone else can fill in good books. Most of my knowledge regarding virtualization and network storage has been a mix of official docs, video training, and poking at it. Seems innate but it isn't.

u/0x4c47 · 3 pointsr/linuxquestions

Yes. It's getting in touch with many different applications and services because you need them for some project. That's how you learn. Of course if you want to learn KVM virtualization you can read a book about it and do some project on that specific topic.

If you want to get an overview of Linux and Unix administration and many different pieces of software, you could look into this book:
https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554
(DM me on how to get it)

u/vekrin · 3 pointsr/linux

Around my office this is known as our bible: UNIX and Linux System Administration Handbook (5th Edition)

It might be overkill as some of the topics aren't important if you aren't working as an engineer or devops.

Check out the table of contents and summary it might be interesting. It's one of the best no nonsense safari books out there.

https://www.safaribooksonline.com/library/view/unix-and-linux/9780134278308/

https://www.amazon.com/dp/0134277554/ref=cm_sw_r_cp_apa_3tgSAbD1NG73K

u/NotebookGuy · 3 pointsr/de

Ein Beispiel wäre, dass sie die Menschen als Hindernis in ihrem Plan ansieht. Es gibt da dieses Beispiel der Maschine, die dafür gebaut wird die Herstellung von Büroklammern zu optimieren. Diese Maschine könnte zum einen indirekt die Menschheit auslöschen indem sie die Erde mit Fabriken vollballert und für uns unbewohnbar macht. Zum anderen könnte sie es auch direkt anstreben, weil sie sich denkt: "Der Mensch nimmt Platz für Fabriken ein. Wenn er weg wäre, wäre mehr Platz für Fabriken." Oder aber sie folgt der folgenden Logik und hat etwas ganz anderes mit den Menschen vor, was wir - da sie schließlich superintelligent ist - uns nicht vorstellen geschweige denn begreifen können:
> The AI does not hate you, nor does it love you, but you are made out of atoms which it can use for something else. - Eliezer Yudkowsky

Will sagen: Sie muss für das Auslöschen der Menschheit keine niederen Beweggründe haben. Sie erfüllt einfach ihren Auftrag. Ohne Rücksicht auf die Menschheit.

Zum Abschluss noch eine Buchempfehlung zu dem Thema: Superintelligence: Paths, Dangers, Strategies

u/blank89 · 3 pointsr/Futurology

If you mean strong AI, there are many pathways for how we could get there. 15 years is probably a bit shorter than most expert estimates for mind scanning or evolution based AI. This book, which discusses different methods, will be available in the states soon:
http://www.amazon.com/Superintelligence-Dangers-Strategies-Nick-Bostrom/dp/0199678111/ref=sr_1_1?ie=UTF8&qid=1406007274&sr=8-1&keywords=superintelligence

> We went from the horse and buggy to landing on the moon in 80 years

Past events are not necessarily good indicators of future events. In this case, faster computers are a mechanism for bringing about AI faster. How much faster we get in how much time will probably be the influencing factor in all this. There is quite a bit of uncertainty surrounding whether that will be post-silicon or not. We don't have post-silicon computing up and running yet.

The other factor may be incentive. Maybe specific purpose AI will meet all such demand for the next 20 years, and nobody will have any incentive to create strong AI. This is especially true given the risks of creating strong AI (both to the world and to the organization or individual who creates the AI).

u/DisconsolateBro · 3 pointsr/Futurology

>Given what Musk does with other technologies, he is by no means a luddite or a technophobe. He's seen something that's disturbing. Given the guys track record, it's probably worth investigating

I agree. There's also a point to be made that one of the recent books Musk mentioned he read in a few interviews (and was acknowledged by the author in, too) was this http://www.amazon.com/Superintelligence-Dangers-Strategies-Nick-Bostrom/dp/0199678111

I started reading it a few nights ago. It's painting an interesting picture about the future of AI. I'm looking forward to finishing it to discuss further

u/rubbernipple · 3 pointsr/Showerthoughts

Someone else beat me to it. Here you go.

u/ImNot_NSA · 3 pointsr/technology

Elon Musk's fear of AI was amplified by the nonfiction book he recommended called SuperIntelligence. It is written by an Oxford professor and it's scary http://www.amazon.com/gp/aw/d/0199678111/ref=mp_s_a_1_cc_1?qid=1414342119&sr=1-1-catcorr&pi=AC_SX110_SY165_QL70

u/bo1024 · 3 pointsr/learnprogramming

There are different variants of Lisp. One is Common Lisp. A really good book on it is online for free: Practical Common Lisp.

I have heard The Little Schemer recommended for learning Scheme, but I've never done so myself or read it.

u/nsxt · 3 pointsr/functionalprogramming

Your math background really shouldn't be an issue. If you're curious, though, check out this primer on lambda calculus.

Also highly recommended is The Little Schemer, which should fit your bill perfectly as a beginner to functional programming.

u/afmoreno · 3 pointsr/Clojure

The most amazing demo I've seen at a meetup was done with Overtone. Whether or not to pursue Clojure or Python is a matter of taste/inclination. I think it would be really hard a priori to determine it since it requires a fair amount of exposure to decide whether or not you are interested in computing as an intellectual exercise.

If you think you'll end up writing code a fair amount, then this is like any trade: invest in good tools to get professional results. In my opinion, Clojure is the superior tool (compared with Python).

Both Python and Clojure claim Lisp as an antecedent but Clojure has these "killer features":

  • macros: the ability to add new features to the language. One way to program in Lisp is to design a Domain Specific Language so you can interact with your problem using its language, not some arbitrary computer language.
  • literal syntax: think of this as a way to describe sets and other data structures that are core to programming. Here Python is great but Clojure is better!
  • very thoughtful design of its data structures so that you can move up and down a ladder of abstraction to pick, say, the right type of collection for your problem (e.g. a list vs. a vector)
  • functional programming is encouraged and supported with immutable data types. Not having immutable data types makes life really hard because one has to deal with values that change over time. If your domain is music, where time is of the essence (pardon the pun), I would think that immutability would be important to you.
  • Clojure runs on the browser (ClojureScript). This means that you can write all your code in one language (if you end up doing a lot of it, then this matters).

    Python is really nice but after having worked with it for years, I felt that I could do better. Things that pushed me away:

  • Writing DSLs is not the default. Sure, one can use parsers and create a grammar, but this is more like building a programming language instead of a DSL. (Sure, there is method overloading which one can take pretty far...)
  • Immutability: for my domain (processing data with a time dimension) it was very painful to keep track of values since the only efficient data structures were mutable. The core issue that I had debugging was that I had a hard time tracking when the data changed. Having immutable values provides a dead-simple solution to the problem of history.

    I wholeheartedly recommend reading SICP to anyone who ends up writing code in Lisp because it is a great way to expand one's mental model of what's possible in terms of capturing abstraction in code. And I think Scheme is a really nice language to learn. If you are interested, you might want to look at The Little Schemer. I have found Chez Scheme (now free) to be excellent.

    Good luck--feel free to write if you have any questions.

    Cheers! afm
u/CapoFerro · 3 pointsr/leagueoflegends

Groovy is a scripting language so it solves a fundamentally different problem than Java does. It's fast enough for most things but it doesn't approach the speed of Java as it does a lot more work (hence burns more CPU time) to give you advanced features. When you want to build something big and powerful, you will choose Java over Groovy.

It's worthwhile learning both Java and Groovy as both run on the JVM and can interface directly with each other's objects. It's common to write a Java application with pieces of the codebase written in Groovy or the reverse: a Groovy application with pieces written in Java where better performance is required.

Especially while you're in school, learn as many languages as you can. Each new language you learn will teach you something new about programming and will improve your overall effectiveness as a programmer. Additionally it'll make it easier for you to keep up with technology. I've been a professional programmer for 4.5 years and have used more than 10 languages in my day to day work. It's expected that you can pick up a new language fairly quickly when necessary.

Specifically try to learn different classes of languages. Java is a Statically Typed, Compiled, Object Oriented Language. Scheme, on the other hand, has none of those attributes. It's a Dynamically Typed, Interpreted, Functional Language. Check out The Little Schemer if you're interested.

u/stuhacking · 3 pointsr/programming

I'm glad someone suggested scheme. Then get her The Little Schemer. It's a nice introduction to the language in the form of step by step questions.

Warning: Food related examples may cause hunger.

u/wreckedadvent · 3 pointsr/learnjavascript

Functional programming is notoriously difficult to teach due to people learning it and getting stuck in jargon. Then it becomes almost impenetrable when you combine that with a language with a totally new syntax (like haskell). There's an old joke that's somewhat tired but expresses this well: "what's so hard about monads? It's just a monoid in the category of endofunctors".

That all being said, I think that means the best way to seriously get into it is to avoid resources that focus on jargon. Unfortunately javascript is not a great language for FP, so most of the great resources I can think of focus on other languages:

  • F# for fun and profit is basically everything I just said, but for F# (this specifically talk really helped me but check out the whole website):
    https://fsharpforfunandprofit.com/rop/

  • I've been consuming content from Mark Seemann for a while. I liked his book on dependency injection a lot, but he also gives good talks on some functional stuff: https://www.youtube.com/watch?v=US8QG9I1XW0

  • LYAH (learn you a haskell) is somewhat obligatory. I don't really like it too much since it almost immediately delves into typeclasses (which I think are very intimidating to a newbie) but I would feel bad not giving it a mention: http://learnyouahaskell.com/chapters

  • The little schemer is a good way to pick up LISP (and you will eventually pick up LISP if you stay in functional circles long enough, the language is just too perfect). LISP is especially good for getting you out of thinking of things in imperative steps and more like streams of data (which is the big take-away).

  • On the javascript side of things, react and react-likes can actually be a decent way to start thinking functionally, if you avoid the class-based stateful components. Redux takes a lot of lessons learned from FP. I picked up react many, many moons ago so I don't remember any good resources there, sorry.

  • The elixir home page is very dry, but focuses on learning a functional language pragmatically and without a lot of the higher-level jargon.

  • Rust! The rust book is one of the better programming books I've read, and rust will probably be the most approachable thing on the list if your background is javascript, especially if you're already comfortable with how promises work. Rust is heavily influenced by functional languages, to the point it doesn't even have exceptions.
u/DragoonDM · 3 pointsr/cscareerquestions

Game Engine Architecture provides an excellent overview of how game engines work, from the ground up, in a way that's fairly accessible—that is, I understood most of what I was reading despite not having any experience programming at that level.

Also good:

Real Time Rendering

Real Time Collision Detection

u/jmoeller · 3 pointsr/gamedev

Consider starting with something general like Game Engine Architecture.

It's platform agnostic, so you can follow it using whatever.

Read OpenGL tutorials on the side and use something like SFML, SDL or GLFW to handle input / window management / context creation / etc.

u/DaFox · 3 pointsr/gamedev

Jason Gregory's Game Engine Architecture is basically the de facto standard.

u/LokiNinja · 3 pointsr/gamedev

It seems like you're on the right path. I started working with major engines like unity and UDK. In addition I started writing small game clones (Pong, Pac Man, Asteroids) in C++ using DirectX. Once I was comfortable with all that I started working on my own flexible/reusable engine and writing my own tools. Using Unity and UDK gave me a good idea of what sort of features I needed to support and helped me develop comprehensive use cases. The whole point is that it is really an individual process. I don't have a degree, just been developing in C++ for the past 15 years. Tons of good literature out there too! http://gameprogrammingpatterns.com/ http://www.amazon.com/Game-Coding-Complete-Fourth-Edition/dp/1133776574 http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135. Those are some of the resources I found particularly helpful.

u/silverforest · 3 pointsr/gamedev

Other than Real Time Rendering which /u/horsman has mentioned above, I would also recommend:

u/raging_bool · 3 pointsr/howdidtheycodeit

There's already a lot of great answers, so I won't go over all that again, but if you're interested in writing an engine, this is the book I used as reference material when I wrote mine: https://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135

u/SartreToTheHeart · 3 pointsr/gamedev

Not necessarily source code, but Game Engine Architecture is practically the Bible when it comes to this topic.

u/NlightNFotis · 3 pointsr/debian

When I was beginning to learn Linux back in the day, I used The Linux Command Line and have only good things to say about it. It must be one of the simple best books to introduce yourself to the command line and to how to use a modern Unix like system.

u/Kaladis · 3 pointsr/sysadmin

Obviously, you will want to read the documentation on the distro you decide to install. For a book, I would recommend The Linux Command Line.

u/drpinkcream · 3 pointsr/bash

I recommend How Linux Works and The Linux Command Line. Those will take a total beginner and take you through the basics up to shell scripting.

The Linux Command Line is a work book where you type what it says and follow along. How Linux Works is more of an explanation with less hands-on. I went through both at the same time as the chapters align very well, particularly at the beginning.

u/I_Generally_Lurk · 3 pointsr/raspberry_pi

First of all I should say that I'm no expert in these things, but I'm sure other people will be able to make other suggestions.

>I plan on installing Linux as my OS (technically my first time)

If you're more used to Windows then the UI will be fairly easy to get used to, but the biggest change will be the command line. This is a really powerful but complex tool and I think the best way to get used to it is really just to dive in and use it as often as possible. MagPi have a book for it (Conquer the Command Line) to get you started, but if you wanted something more comprehensive I've spent some time reading The Linux Command Line and found it really helpful.

For Python I think I started out with Code Academy, but mostly picked it up as I went along. I'm currently reading Python Crash Course and I think it is pretty decent, although most people seem to recommend Learn Python the Hard Way (note the tiny link near the bottom of the page to read the book for free).

At the end of the day the most important thing is to take baby steps and take them often: when you've kept at it regularly for a few weeks it becomes a lot more easy.

u/albion28 · 3 pointsr/ItalyInformatica

Sicuro di volere escludere a priori i corsi/video online? Escluderesti delle ottime risorse imo. Poi dipende anche dal tuo rapporto con la lingua inglese. Se è buono, vai su /r/learnprogramming. Troverai molte risorse utili!

Ti posso inoltre consigliare un buon libro su Python suggerito da molti: https://www.amazon.it/dp/1593275994/

u/Feurbach_sock · 3 pointsr/badeconomics

Someone here is a pybro but I can't remember who. Anyway, you reminded me of Automate the Boring Stuff with Python.

That's a good one imo.

u/motts · 3 pointsr/civilengineering

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

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

u/Wild_Space · 3 pointsr/CFA

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

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

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

u/core_dumpd · 3 pointsr/datascience

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

For books:

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

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

For general python:

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

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

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

u/BBorNot · 3 pointsr/SeattleWA

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

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

u/NextEstimate · 3 pointsr/learnpython

Amazon doesn't like web scraping without permission. I would just use camelcamelcamel to get the same information minus the hassle:

from bs4 import BeautifulSoup
import requests
headers = {'User-Agent': 'Mozilla/5.0'}
r = requests.get('https://camelcamelcamel.com/Automate-Boring-Stuff-Python-Programming/product/1593275994',headers=headers)
print(res.statuscode)
> 200

price = r.text
soup = BeautifulSoup(price,'html.parser')
soup.find('span', class
='green').string
> '$24.45'

u/YuleTideCamel · 3 pointsr/learnprogramming

Software Architecture is a nebulous term that can mean different things to different people. I'm a software architect and there is no single definition for architecture.

Instead try to get a deep understanding of good programming concepts and patterns, while focusing on ways to scale both your application and resources. Introducing unit testing, continuous integration and industry best practices is a key part of good architecture.

Architecture is also more than just the technical side, it's understanding the business domain and making decisions based on that.

tl;dr figure out what architecture means to your business and find the best way to bring value from a high level.

The following books are good resources:

u/TNMattH · 3 pointsr/csharp

>Is there any decent books on the GoF stuff?

The GoF book: Design Patterns: Elements of Reusable Object-Oriented Software by "The Gang of Four" (Gamma, Vlissides, Johnson, and Helm)

u/casualblair · 3 pointsr/learnprogramming

Skill - if you look at a book and can't even figure out what the topic is about then it's too advanced. EG: Entity Framework - if you don't know what an ORM is or why it would be a good idea to have a DAL then you might want to skip this and come back later.

Find a popular blog or podcast on your topic then browse through their articles and notes. They should be regularly recommending books or sites that are useful. Then take that book and google other sites for it. Find lots? Good book.

And yes, amazon reviews do matter. EG:

https://www.amazon.ca/Design-Patterns-Object-Oriented-Addison-Wesley-Professional-ebook/dp/B000SEIBB8

4.4 out of 5 stars, only one version ever published, and all the negative reviews are about the kindle version, and it's basically THE book for learning design patterns, even 20 years later.

u/nutrecht · 3 pointsr/java

Although I admire the optimism for a lot of people here I feel they are not being very realistic. Like the mention of using sales experience to 'sell' yourself to employers: it's fine and dandy if you can bullshit your way into a job but if you can't actually deliver you'd be 'let go' within a month.

Learning a language is just one aspect. What's most important is doing actually a ton of programming. So make sure you have at least 3 moderately big projects with good code quality that follow best practices that you can show to employers.

Feel free to hop over onto /r/javahelp to have us review your code and suggest improvements. Being a developer isn't really about languages: it's about turning a customer's problem into a working solution. That's the hard part.

One last tip: for someone without any CS education but who is going into an area where OO skills are a must this book is a must read: http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented-ebook/dp/B000SEIBB8

Heck. Showing an employer that you read and understand it and apply it in your projects would give you a huge head up.

u/BertilMuth · 3 pointsr/learnjava

It will certainly take time. How long is hard to say. One thing is being exposed to code, and writing code yourself. Another thing is actually collaborating with people that are more experienced - that helped me a lot. An eye opener in my coding journey was the "Gang of Four" design patterns book (https://www.amazon.de/dp/B000SEIBB8/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1). The risk is that you will overdo design patterns at first, but that will hopefully settle :-)

u/1nf · 3 pointsr/sysadmin

I feel the Network Warrior book would be a good introduction for any of those "real-world" questions you may have. It covers many of the topics you may not be confident about.

u/Hanpe · 3 pointsr/ccna

Go for CCNP to make sure that you have the foundation.

On the way have a read of Network Warrior: http://www.amazon.com/Network-Warrior-Gary-A-Donahue/dp/1449387861

u/esper2142 · 3 pointsr/networking

READ

Network+ Cert Guide

Cisco CCNA

Network Warrior

Packet Life


WATCH

How to use/install GNS3

CBTNuggets (Paid Training)

DO

GNS3

Packet Tracer + Labs (torrent)

Cisco CCNA Study Group

9tut.com Labs

Talk to an IT Recruiter

TekSystems

Tech Team

Robert Half


These are just a few examples, many more exist. Good luck!



u/robohoe · 3 pointsr/devops

Look into Network Warrior. It's network-heavy but goes over some of the most common things you would do as a network engineer.

u/BunkerRiver · 3 pointsr/netsec

I'm a fan of this guy for computer/network fundamentals, as well as some good security-focused tutorials. I would also recommend Network Warrior as a fantastic read for a beginner.

I'm of the opinion that you should start with learning network fundamentals and then move on to security, because many security principles rely on a solid networking/general IT foundation.

u/sixmill · 3 pointsr/Cisco

Sign up for the cisco security bulletins and bug updates for the gear that you work with.


Read Network Warrior by Gary Donahue: https://www.amazon.com/Network-Warrior-Everything-Need-Wasnt/dp/1449387861

u/Clynt · 3 pointsr/ccna

I'm 22 years old. See my response to hidperf regarding what I plan on doing about getting into the field. As far as studying, I'm going to take a short break from going after certifications. I'd like to go for CCNP next, but I keep hearing that it's not good to have a CCNP with no experience. For now, I think I'm going to pick up this book and read it. It's supposed to be a lot more focused on practicality and problems you encounter on a day-to-day basis on the job. I've heard a lot of good things about it.

Edit: Actually, just ordered the book. Yay for Amazon Prime :)

u/0xfefefefe · 3 pointsr/learnprogramming

I am a game engine programmer in the industry right now, do C++ and pick up Game Engine Architecture for a nice overview of many of the core subsystems of an engine. Java is a cake walk post C++, and still a worthy language - just not the industry standard.

u/spaghettu · 3 pointsr/gamedev

If you're planning on pursuing this as a career, there are tons of incredible opportunities for people experienced with lower-level 3D APIs. Making your own engine serves as a fantastic learning experience, and would be a huge investment in your future.

Below are some of my favorite books/resources right now that may help you along the way. These might not be immediately useful to you right now, depending on where you're at, but together they have more than enough knowledge for you to go far in 3D Computer Graphics.

  • Game Engine Architecture touches at least a little on all of the knowledge necessary to build a bare-bones 3D engine. It goes over the components of modern 3D engines, and how they work. It even has introductory Linear Algebra and Object-Oriented programming concepts. I think this book is pretty approachable for beginners.
  • The OpenGL SuperBible offers great insight and examples on using OpenGL optimally. Depending on when you start, however, you may want to consider a Vulkan book instead. I think this book is the best way to learn OpenGL as a beginner. There are plenty of free tutorials online on websites like learnopengl.com and open.gl as well.
  • Real-Time Rendering is a fantastic book that dives deep into different algorithms and techniques for modern 3D rendering. It's pretty advanced, but it's a very well-known book and exposes very valuable information on complicated effects found in modern 3D engines.
u/Serious_Casual · 3 pointsr/gamedev

Writing an engine isn't a trivial task. I don't mean to put you down or make you feel bad but it kind of sounds like you don't totally understand what a game engine does.

If you do want to write an engine, I would suggest starting with the renderer and expanding your understanding from there. The features of your engine depend upon what kind of game features you want to support. Particles? Visual effects? 3D sounds? Dynamic Resource management? and all of that behind the gameplay code.

Just get a square to show up on the screen. While you're working on that, check out a few books on game engine programming. There are a ton on amazon. This one is really good:

http://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010/ref=sr_1_1?ie=UTF8&qid=1453134607&sr=8-1&keywords=game+engine+architecture

If you need some more help getting started let me know! Engine programming is fun and rewarding but building one from scratch can be a monumental task.

u/BlackDeath3 · 3 pointsr/Physics

For anybody interested in a discussion on the modern usage of Quaternions with respect to game development, see Jason Gregory's Game Engine Architecture.

u/MightyDodongo · 3 pointsr/Games

Read Jesse schell's book and take everything in it to heart. Pick up game maker or unity/unreal, and start putting the book into practice. Amazon Link

This is going to be a hot take, but I'd consider going a step further and making your own lightweight engine using SDL; it will teach you not only a lot about programming, but also give you a lot more flexibility in the long run. Lazy Foo has an incredible guide on working with SDL Link

Feel free to DM me for advice. I'm not even close to doing this as a career (currently a software engineer and working on engine stuff on the side), but I can at least offer advice on programming and general engine work.

u/daybreaker · 3 pointsr/tabletopgamedesign

There's an app called The Art of Game Design: Deck of Lenses.

Its a deck of cards meant to make you think about different aspects of your game. It goes together with the book Art of Game Design, but can be used separately.

u/Pogotross · 3 pointsr/gamegrumps

I think Arin likes The Art of Game Design: A Book of Lenses, Second Edition and either he or Jon liked Game Feel: A Game Designer's Guide to Virtual Sensation.

Personally my favorite game design resource is either Mark Rosewater's design articles or his podcast. I prefer his podcast but both covers most of the same information. MaRo is the lead designer for Magic: The Gathering so a lot of the articles are about MtG specifically or about tabletop games but nearly all the general design podcasts are worthwhile. Most importantly, he has around twenty years of successful (and unsuccessful) design under his belt, so he isn't just talking in vague generalities or theories. He has examples backing up pretty much everything he talks about including, and maybe most importantly, times he thought he was doing the right then and messed up. I think anyone interested in game design should listen to the "Ten Things Every Game Needs" and "20 Lessons" series. You can hear his GDC version of the 20 Lessons here.

*: But the absolute best thing you can read on game design is a gamemaker tutorial. Theory is useless without execution.

u/GeniDoi · 3 pointsr/gamedev

If you want some more information about what makes a game a game, The Art of Game Design: A Book of Lenses by Jesse Schell covers a lot of game theory such as what makes a game fun amongst many other conceptual ideas. I would highly recommend it.

u/elperroborrachotoo · 3 pointsr/cpp

Effective C++ / Effective STL by Scott Myers are a good starting point. They can be hard - if they are not, come back in a few months.

Marshal Cline's C++ FAQ is an assorted collection of everything in small bites. The book makes excellent toilet table material, though you have to piece together yourself the deeper insights that Effective X aims for.

Guru of the Week is a sometimes-dated but very well presented series of questions and answers, aiming at a wide range from beginner to, well, guru. The only drawback is that in C++11 and beyond, it's a bit different, or there are other / easier solutions.
Herb Sutter has started reviving the series

Code Complete gets half-a-recommendation. It is important material about programming in general, but for most people it's just too big. Anyway, the first edition can be acquired for pennies and is "good enough", so in case it doesn't work for you it could keep you warm for half an hour or so (lighter not included).

---

Other than that: I repeat the recommendation by /u/Heiroglyph to read and try to make sense of other people's code.

---

Side Note: My recommendations are intentionally non-game-programming related. Reason is^* I had quite a few run-ins with game programmers on Q&A sites and the like, and I'm left with the impression that they have a culture of sticking to their own puddle, but thinking it's the ocean. Certainly, game programming has some very particular problem that need very specific and sometimes awkward solutions, but that's no reason for isolaitonism.

^^*) ^^besides ^^the ^^obvious ^^"I ^^am ^^doing ^^too ^^little ^^game ^^programming ^^to ^^be ^^of ^^use ^^for ^^that"

u/pozo15 · 3 pointsr/TeamGFB

There is a new version of effective C++ that covers C++11/14:
http://www.amazon.com/dp/1491903996
I would guess that it is still as good and relevant as the older version.

u/mohself · 3 pointsr/cpp_questions

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


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

u/Pattycakes_wcp · 3 pointsr/OSUOnlineCS

At my previous employer (where I was not an engineer but was testing their software), everyone was carrying around this book:
Effective Modern C++
https://www.amazon.com/dp/1491903996

There's also this list you can browse here https://github.com/rigtorp/awesome-modern-cpp

u/ProvenDantheman · 3 pointsr/Cplusplus

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

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

Scott Meyers is good -- check out Effective Modern C++. He has a training course, Overview of the New C++ -- I haven't taken it, but I've seen enough of his stuff to recommend him.

If you want more introductory C++ stuff, look at some of the online courses by Kate Gregory (some free trials available -- which might be good to assess if it's what you're looking for).

Once you get going, I'd recommend Sutter's Mill. In particular, check out his "Elements of Modern C++ style". There are also loads of videos online from CppCon (just google it).

But keep in mind that one limiting factor in your request is the "for C programmers" part. A big part of recent evolution of C++ has been getting rid of the need for core C features like pointers. By keeping the C angle, you may be anchoring yourself to the past.

And if you want to go that route anyway (ie keep the C angle), then there is less harm including some older stuff too. I really liked Bruce Eckel's Thinking in C++, which you can find online for free (it isn't quite ancient or modern).

u/tofapornottofap4 · 3 pointsr/pornfree

I would suggest reading this wonderful wonderful book on internet addiction.

I very strongly associate to this void of porn being filled by other useless stuff on the internet. I also strongly relate to the fact that if I'm wasting time on the internet, it means I'm escaping from something else - usually some difficult work.

I realized that a huge amount of time wasting for me started off from an impulse. For example, I'd just type facebook blindly into the browser. I first used a pop-up kind of plugin for reddit and signed out of my facebook account. This forced me to "agree to see website" or sign in manually into facebook, which made me much more minful of these impulses. Following that, and after I completed reading the above book, I deleted my facebook account and started using only throwaways for certain subs that I was interested in. I still have to deal with youtube however.

As is mentioned in one of the other comments, buying a newspaper or magazine subscription really helps. It's amazing to see how much of deep-reading skills I'd lost due to mindless internet browsing, clickbait headlines and bite-sized memes. I'm also reading a book for a half hour a day before sleeping, but this is hard to enforce too, given netflix.

Thanks actually! While writing this I've become more mindful of what I need to do next :D

u/my_favourite_axe · 3 pointsr/intj

Social media is a good call, but I actually think it's not only that, but browsing in general - it's been very well described in a book called The Shallows: What the Internet Is Doing to Our Brains. I'd recommend to minimise browsing the internet and try to replace it with reading longer texts (yes, it's quite ironic to give this advice on Reddit).

How would you describe your attention span/focus in general?

u/coldfrontin · 3 pointsr/bonnaroo

You just reminded me where I learned this.

u/philipp_w · 3 pointsr/Showerthoughts

It's sad, isn't it?

But still, there is a lot more to the Internet than just consumption and advertising. Wikipedia has changed how we approach something so boring as an encyclopedia. Stackoverflow is the Q&A site - spawning many more under the StackExchange roof (or maybe you're more a Quora-type?). edX, Coursers, MIT OpenCourseWare and many more make it easier to get access to top-notch information (although you still have to study it yourself).

Google Maps brought cheap navigation to the masses and my be the best tool at our disposal to help the ever-increasing traffic jams.

Facebook has the potential to create diverse communities around the most obscure things.

And then there's Reddit - a plethora of communities of interest culminating into one front page.

The Internet (just like any other medium) is what you make of it.

P.S.: If I may suggest a book on this The Shallows: What the Internet Is Doing to Our Brains.

u/-eddy · 3 pointsr/sysadmin

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

u/JaseDroid · 3 pointsr/suggestmeabook

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

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

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

u/archont · 3 pointsr/Planetside

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

Welcome to the darknet, operative

u/drivers9001 · 3 pointsr/arduino

Hey don't feel bad if you did. Breaking things is a fine way to learn. (I mean, I'm kind of curious about what the insides of a servo look like in person. Haha.) I was going to link to a book I saw that teaches you electronics by breaking stuff (like the first lesson was to completely burn up an LED haha). But I can't find it.

Oh wait, it was this book after all: http://www.amazon.com/Make-Electronics-Discovery-Charles-Platt/dp/0596153740

u/Murloh · 3 pointsr/electronics

I picked up Make: Electronics and so far it has been very insightful. It walks you through doing real world examples while introducing some basic theory. It is all hands on which I like a lot. One caveat is that you need to also purchase all the components and tools. They sell 2 ready made component kits from Makershed.com but you can get the components cheaper utilizing different sources like mouser, jameco, even radio shack.

I also picked up a nerdkit (www.nerdkits.com) and it has been a great intro into microcontrollers. The documentation and support those folks provide are truly second to none. AWESOME community. Once I complete the Make Electronics book, I will be going full steam ahead with seeing how far I can get with MCUs.

And then, it will be on to exploring some robotics for me. If you are like me, be careful that you don't get bogged down with theory only. Back in my teens, I really wanted to explore electronics and read all I could on theory. Which was great and all, but also very very dry. Yes, Ohm's law is critical to know. However, making the leap from theory to practice will be equally as critical and will ensure you see how to really apply the theory you are learning.

u/CaffeinatedGuy · 3 pointsr/IWantToLearn

I'd pick up the following kit and book. I've had this kit for years, and it's a pretty good intro. The breadboard and external components make it expandable so you can use your own components for experimentation. It also had a lot of IC circuits.

The book will get you playing on your own, and supplement where the kit leaves off.

http://www.radioshack.com/product/index.jsp?productId=28733516#

http://www.amazon.com/dp/0596153740/ref=cm_sw_r_udp_awd_OnZaub1V8MYBY

u/wolface · 3 pointsr/arduino

I think what you are looking for is a book called Make: Electronics

u/momslatin_dadsasian · 3 pointsr/java

I'm super new myself, but I've got this one: http://www.amazon.com/Make-Electronics-Discovery-Charles-Platt/dp/0596153740 and its pretty good so far. Starts you from the very basics.

u/AnalogKid2112 · 3 pointsr/EngineeringStudents

For electronics, Make: Electronics is a great book that introduces components and basic concepts. Each chapter has a parts list so you can buy individual components as you go along or order a kit with everything included. You don't need expensive tools to get started, the cheap stuff is fine.

For programming, check out /r/learnprogramming, codecademy.com, or any of the high rated books on Amazon. Python is recommended for beginners, although if you know what university you are transferring to try and find out what language they use for their intro classes.

And if you want to shell out the cash, you can buy the student version of MATLAB and get started with it. There's a billion Youtube tutorials and books available that walk you through it.

u/dasshue · 3 pointsr/AskElectronics

I had a good time with the Make: electronics book. You won’t become an electrical engineer with it, but it covers some good fundamentals, and won’t bore you to death. There are kits available to work your way through all of the projects, which can be easier than sourcing all of the parts a book/or project talks about. And best yet, the kits (two available) will give you a decent assortment to play with when you are done.

Hope this helps!

make: electronics

u/svaha1728 · 3 pointsr/ECE

You mentioned Arduino, so I'd recommend this book and Make:Electronics

For the more academic side of things I'd recommend, The Art of Electronics Student Manual

u/maredsous10 · 3 pointsr/electronics

Getting Started in Electronics by Forest Mims
http://www.amazon.com/gp/product/0945053282/

Make: Electronics
http://www.amazon.com/gp/product/0596153740/

Lab Manuals for Electronics
http://www.amazon.com/gp/product/0471386952/
http://www.amazon.com/gp/product/0135046858/


Videos
Make videos by Collin Cunningham on youtube.com

Edit: Changed Chris to Collin (I got mixed up)... one guy does Aphex Twin videos and the other does Make videos

u/Salsaprime · 3 pointsr/ccna

Either get Lammle's Book or Odem's Book. Lammle is easier to read and understand in my experience, but Odem goes deeper into some topics. You can read a few pages of the books through Amazon, and see which one you like better.



You can get Chris Bryant's Video Series through Udemy for ~$10 since they're always on sale. There's also CBT Nuggets. The monthly subscription is a bit pricey, but there are ways to get them "cheaper".

u/Cyber_Analyst · 3 pointsr/ITCareerQuestions

I used this book for my exam in May 2016 and I found his writing better than the Cisco Official Text.

u/BenboJBaggins · 3 pointsr/ccna

From the sticky post at the top of the forum it seems the general consensus is that Lammle is an approchable, easier to read author as opposed Odom who is more technical.

Might I suggest you go for [this book instead] (https://www.amazon.co.uk/gp/product/1119288282/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1) seems to be more or less the same cost but covers all the material for CCNA + ICND1 & 2.

Just an idea.

to answer your actual question, I'm a beginner and I like Lammle's books

u/Matvalicious · 3 pointsr/belgium

Here is a Cisco guide I found about the subject of IP addressing and subnetting. Just the first link on Google though, I bet there are a lot more. (Quickly glancing over it, it seems they explain things in a pretty difficult manner.)

I'm currently studying for my Cisco CCNA certificate and I'm reading Todd Lammle's book for this. Very much overkill if you just want the basics, but everything is very thoroughly explained here. It's very interesting stuff imho, if you're into that.

u/OswaldoLN · 3 pointsr/ITCareerQuestions

I used this book:

https://www.amazon.com/gp/aw/d/1119288282/ref=mp_s_a_1_1?ie=UTF8&qid=1503224194&sr=8-1&pi=AC_SX236_SY340_QL65&keywords=todd+ccna&dpPl=1&dpID=51yYfht4EtL&ref=plSrch#immersive-view_1503224202882

It pretty much has everything you need to know. I would 100% recommend doing CCNA, I feel SO much more knowledgeable now.

Also used CBT Nuggets, at 84$ a month it is pretty expensive. It is a great service however.

You will also inevitably need to use GNS3 which is a network simulator. It is annoying to setup, but a must. Unless you have a home lab which most people, including myself use. It is best to do both.

u/cannibalbob · 3 pointsr/cscareerquestions

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

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

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

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

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

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

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

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

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

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

u/furas_freeman · 3 pointsr/learnpython

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


There are other free books for beginners

u/JackStratifPapaJohns · 3 pointsr/learnprogramming

> I'm just afraid to fail that too or be too overwhelmed.

You said you learned math on your own via Khan Academy and you're afraid to fail. Clearly you need a refresher about what Khan Academy is all about. :)

I think you need to become more structured in your studies and really sit down to complete something from start to finish rather than knowing a little bit about a lot of things. I'd suggest picking up a book like Learning Python and setting a schedule each week where you'll sit down and read the book. Once you complete that book cover to cover, you can move onto a book like Programming Python.

​

I absolutely think college is a great option for you. If you're scared, start off by getting 2 year degree then move onto a 4 year degree. What a disservice to the world it would be for such a curious mind to be wasted working in a construction store.

​

Always remember bud, life is a marathon not a sprint.

​

u/JacboUphill · 3 pointsr/UCI

You don't have to know anything about programming going in, as aixelsdi mentions. If you want to get ahead, here's some information which may help you do so. The rest is up to your own initiative. It can never hurt to know more about CS or more languages, as long as you don't waste time complaining about what's better in [insert language of choice].

I wouldn't recommend learning data structures and algorithm analysis before coming to UCI. Not because they aren't fundamental, they are. But because most people find it harder to learn those abstractions before learning the tools that utilize them (Python, C++, etc), which is why ICS 46 and CS 161 aren't the first classes taught. If you like math proofs more than math problems then maybe go that route, it could be helpful as iLoveCalculus314 mentions.

Languages: The CS introductory series (31-32-33) which you'll be taking first year is taught in Python. It switched to this because it's a good first language as a teaching tool. Right after you're done with Python, 45C will teach you C++ and 46 will use C++. The lower division systems core (51-53) generally use C or C++ but it differs by professor. Knowledge of Python will be useful in making your first year easier. Knowledge of the other two will make your next three years easier because they're common mediums for upper division courses. But you should be able to pick up a new language for a specific problem domain by the time you reach upper division.

Courses: If you want to get a head start on planning your courses, check the UCI Catalogue - Computer Science page. At the bottom it lists a sample of what your schedule over the 4 years might look like. That page is for the "Computer Science" major, for other majors in ICS see here.

Course Resources: You can actually view the Schedule of Classes without being a UCI student. Select a term (like Fall 2014) and a department (like I&C SCI) and it will list what classes were offered that term. Most lower div will be I&C SCI, most upper div will be COMPSCI. From the results you can go to the websites for those courses to see a syllabus, books used, etc. For example, here are the current websites for the introductory series ( ICS 31, ICS 32, ICS 33 ).

Your course professors and books and assignments will NOT be identical to those, but looking at what's currently taught will give you a pretty good idea of what the course entails so you can pre-learn anything that sounds difficult.

Books: If you have to pick one book to learn before coming to UCI, I would highly recommend C++ Primer, 5th Edition. It's very well structured as a self-teaching tool AND as a reference manual. You won't come away with any Python knowledge, but picking up Python as someone versed in C++ is easier than the other way around, and you'll find 45C much easier as well since you can focus on language quirks rather than fundamentals.

If you choose to learn Python first, Introduction to Computing Using Python: An Application Development Focus is the book currently suggested for ICS 31/32, and Learning Python (5th Edition) is suggested for ICS 33.

Another solid circlejerk book in the CS community is Code Complete, but I wouldn't recommend reading that until later on since it's more of a "best practices" book.

u/Shogil · 2 pointsr/DecidingToBeBetter

I've spent a lot of time today seeking information about dopamine and its active role in motivation and reward seeking behaviors.

Not specifically about procrastination but this book talks how the medium can sometimes be as important as the message that it carries, and how thrill-seeking characters can end up seeking the "high" of novelty through internet (we already see this with people who use pornography instead of building social skills and their appearance to find girls, people who play video games for either cope with stress or to reminisce their childhood years.

It's different for everybody but moderation won't harm. But I'm talking about actual moderation. Don't become like the smoker who says "I can quit whenever I want" and keeps smoking uncontrollably.

As for dopamine and its role 1 and 2 (ctrl-F 'dopamine' on that).

u/KashEsq · 2 pointsr/Unexpected

You're absolutely right. The phenomenon is covered well in Nicholas Carr's The Shallows: What the Internet is Doing to Our Brains

u/Schadenfreuder · 2 pointsr/GetMotivated

"Patience is a muscle" is a great metaphor, but what you're really doing is rewiring your brain. Your brain is very malleable and it can be retrained via repeated effort.

I highly recommend Willpower: Rediscovering the Greatest Human Strength and The Shallows: What the Internet Is Doing to Our Brains if you want to learn more about the science of it.

u/humble_braggart · 2 pointsr/AskReddit

The Shallows by Nicholas Carr explores this idea. It's a pretty good read.

u/FarBlueShore · 2 pointsr/getdisciplined

Same boat, man; my eyes tend to skip around paragraphs and sentences trying to get the 'gist' of something, not like real reading.

If it's not too weird to recommend a book to someone having trouble with reading - I'd really recommend The Shallows; What The Internet Is Doing To Our Brains. There are audio versions of it, if that helps!

It really put into perspective how your daily habits influence the way your mind works, and vice versa. Really interesting, 100% recommend.

u/Secreteus · 2 pointsr/nosurf

Reading books of course, it will greatly improve your ability to focus which has been really harmed by internet surfing. You may also work on improving some marketable skills, like programming, graphics design, etc., whatever you choose. To dive more into those topics I recommend you to read Cal Newport's books, especially Deep Work and Digital Minimalism, he also has interesting blog: calnewport.com/blog, old posts touch this topic in more depth. Another book that I would like to recommend you is The Shallows: What the Internet Is Doing to Our Brains which will show you how damaging internet can be.

u/com4 · 2 pointsr/selfhelp

Well, to paraphrase this book, the way the internet (and tv. think cnn with all those news tickers) deliver information to our brains creates new neural pathways that become accustom to so much information and input bombarding us at once. It's easy to get distracted reading a Wikipedia article and click a link to a related (or unrelated) topic.

Did it make you stupid? No.

How do you learn to think again? Practice. Force yourself to concentrate and soon it will become more automatic. I find it easier to force myself with an actual book of some length (ie, not the internet). Pick something that will hold your interest for awhile. It won't work if the book is too heavy or boring. A bunch of people have enjoyed The Game of Thrones series. Maybe you could give those a spin.

u/gheradel · 2 pointsr/xboxone

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

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

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

u/searstream · 2 pointsr/Bitcoin

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

u/greatAlexander · 2 pointsr/transhumanism

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

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

u/adnanrk2175 · 2 pointsr/audiobooks

Daemon by daniel suarez. An excellent techno thriller.

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

u/SpagNMeatball · 2 pointsr/AskMen

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

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

u/Liquidretro · 2 pointsr/AutoDetailing

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

u/gary1994 · 2 pointsr/JordanPeterson

I think you missed my point.

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

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

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

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

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

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

u/JakeFrmStateFarm · 2 pointsr/WritingPrompts

Daemon is also very similar.

u/faloompa · 2 pointsr/blackmagicfuckery

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

u/fletch407 · 2 pointsr/booksuggestions

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

u/eliazar · 2 pointsr/Bitcoin

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

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

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

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

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

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

Daemon and Freedom™. They're techno thrillers.

u/jhchex · 2 pointsr/electronic_circuits

Buying a few kits is a good way to learn some basic techniques but I'd also recommend checking out this book: http://www.amazon.com/Make-Electronics-Discovery-Charles-Platt/dp/0596153740/ref=pd_sim_b_1?ie=UTF8&refRID=04BB6E49FT8V4ZAPNATV

u/teeceli · 2 pointsr/arduino

Thank you! I think I might buy Make: Electronics or Practical Electronics for Inventors just to have on hand as a quick reference manual.

u/spwx · 2 pointsr/electronics

All these comments are great, but the absolute beginning is here!

Next read the book suggested by ryzic. If you have the money, id buy the companion kits that Make sells for the book.

After reading those two books and doing all the projects, look into some "project kits." Check out sparkfun, The Evil Genius series of books, or my favorite the Nuts and Volts store.

After three or four "project kits" just find schematics and figure out how to buy all the parts yourself. Really the world is your oyester and with enough struggling you can build anything. Some ideas that always get people excited: a Tesla coil, cell phone jammers, tasers, ultrasonic range finders, a robotic arm, mechanized nerf gun, anything you think is cool and can find a schematic for.

From there you a going to find yourself really interested in microcontrollers. And well.. Thats a different comment lol!

u/flaz · 2 pointsr/electronics

I have programmed computers for a living for nearly twenty years. I have also done hobby electronics for longer than that. However, I don't know electronics remotely as much as I do programming. So I have a few things to say about this in terms of programming.

My recommendation would be to begin learning C right away. You'll have to know it to learn C++ later anyway, plus there are many C-like languages out there. Once you understand C, it will be much easier to learn different assembly languages for different devices. From my own experience with electronics and programming, C will be an incredibly useful tool to have at your disposal. Once you have C basics down, there are tons of books and online resources out there for learning to program AI. It will take a few years to get good at programming, so stick with it and be patient.

The great thing about learning programming is that you don't need an instructor or class. You can learn it all on your own, all the way to being a professional. When you get to college, if you wanted to stay with programming only, then computer science would be a wise choice. However, my own experience has shown that getting a degree in computer science isn't necessary if you teach yourself programming, and you work hard at it. Therefore you can focus on electrical engineering when you get there and continue to work on your programming skills yourself.

For electronics, I would start with the book, Make: Electronics. Once you learn C, I would get an Arduino starter kit and a book about it. That will definitely get your feet wet with robotics-like electronics and C programming. You'll be able to do some pretty powerful stuff at that point, and have a really good idea of where to go next with college.

Finally, I would strongly suggest studying as much mathematics as you can. I hated math so much when I was younger, but now I use it all the time and wish I had better skills. You won't need it in the early years, but I guarantee that you'll need it later when you get good at your craft. I know this from my own experience and wish I had studied more math in high school and college. In fact, if I had it to do over, knowing what I know now, twenty years later, I would have just gotten a degree in math. You will eventually be shocked by how many uses there are for even some of the seemingly most useless math stuff. Every little tidbit you learn now is another trick in your pocket to make good money with later on.

u/Senqo · 2 pointsr/electronics

You absolutely must get the book "Make: Electronics".

u/zenlizard1977 · 2 pointsr/arduino

With a programming background you will take to working with the code and libraries fairly easily but working with the electronic principles a little more challenging (at least that was my case). This book wasn't specific to Arduino but made working with the Arduino much easier for me as I got the basics down as far as working with capacitors, resistors, LED's, pull downs, switches, etc.
http://www.amazon.com/Make-Electronics-Discovery-Charles-Platt/dp/0596153740

u/Make_Me_A · 2 pointsr/electronics

I read this book and found it quite interesting and easy to read. It includes many pictures and is quite hands on DIY.

http://www.amazon.com/Make-Electronics-Discovery-Charles-Platt/dp/0596153740

u/hugh_person · 2 pointsr/DIY

Try r/electronics and maybe r/arduino. The communities there are great, but you need to give a clear description of what you are trying to do.

That said, Forest Mims III's Getting Started in Electronics has probably launched a million hackers, and you can find it at a better Radio Shack.

I also like the book put out by MAKE. It's the book I would have liked to have when I was learning electronics. It goes from licking a 9V battery to using common and useful ICs.

While both of these books will get you started with how electricity works, neither one covers microcontrollers. Buy an Arduino, or a BASIC Stamp, or whatever and just get started. There's tons of info online. And if you have questions or problems, the above subs have lots of smart and helpful people.

u/LithiumEnergy · 2 pointsr/AskPhysics

There's plenty of great books that he can refer to when learning electronics, but its fun because you can actually start applying physics knowledge to create circuits and fix things. Make: Electronics is a great book for anyone who wants to learn how to put together some analog circuits - they actually have some kits that go with it. The Art of Electronics goes deeper into the theory behind circuitry and components which might be useful too.

Most physics majors don't usually look at electronics with any depth - that's usually for engineers. But electronics is all about using physics knowledge creatively!

u/dangets · 2 pointsr/raspberry_pi

The defacto bible is "The Art of Electronics" by Horowitz and Hill which still sells for $100 even though the latest edition is from 1989. It is a thick book, but is better than most textbooks IMHO. They refer to many part numbers that are long past gone, but it should give you the vocab and keywords for you to search out the current parts.

http://www.amazon.com/The-Art-Electronics-Paul-Horowitz/dp/0521370957/ref=sr_1_1?ie=UTF8&qid=1342471024&sr=8-1&keywords=art+of+electronics

Other than that, if you want more beginner books - look at Make: Electronics
http://www.amazon.com/Make-Electronics-Discovery-Charles-Platt/dp/0596153740/ref=sr_1_1?s=books&ie=UTF8&qid=1342471247&sr=1-1&keywords=make+learning+electronics or the Forrest Mims books

As far as power supplies specifically, I believe I found a couple of howto webpages that described the basics - I'll edit this post if I find them again.

u/LordGAD · 2 pointsr/amateurradio

I really like Make: Electronics http://www.amazon.com/Make-Electronics-Discovery-Charles-Platt/dp/0596153740

It will take you step by step through electronic components by building circuits that show you how they work. It's written with a very conversational style and is really just very well done IMO.

u/DarkDeliverance · 2 pointsr/Random_Acts_Of_Amazon

As a fellow engineering student, I can attest to the fact that NOTHING helps out studying, time-management, and efficiency as my new Tablet!
Also, here is a very interesting textbook that I actually thoroughly enjoyed :)

u/dagamer34 · 2 pointsr/electronics

For electronics I started with this book: http://www.amazon.com/Make-Electronics-Discovery-Charles-Platt/dp/0596153740/ref=sr_1_1?ie=UTF8&qid=1369542421&sr=8-1&keywords=Make%3A+electronics
It has lots of cool experiments to get you started with concepts.

Then there's this: http://www.amazon.com/Practical-Electronics-Inventors-Third-Edition/dp/0071771336/ref=sr_1_10?ie=UTF8&qid=1369542421&sr=8-10&keywords=Make%3A+electronics
This will go much deeper into theory and give you a strong foundation.

Though if you want to delve right into the programming part: http://www.makershed.com/Getting_Started_with_Arduino_Kit_V3_0_p/msgsa.htm
and
http://www.makershed.com/Raspberry_Pi_Starter_Kit_Includes_Raspberry_Pi_p/msrpik.htm

MicroCenter will have the kits, and RadioShack should have the tinier parts, as well as the Raspberry Pi.

u/jimatlammle · 2 pointsr/ccna

We have some Packet Tracer labs we offer for those who purchase Todd Lammle's book - https://www.amazon.com/Routing-Switching-Complete-Study-Guide/dp/1119288282/ref=sr_1_1?ie=UTF8&qid=1509575939&sr=8-1&keywords=ccna

Kindly send us a copy of receipt (screenshot) to [email protected], we'll get those to you.

Hope this helps!

u/cisco_newb · 2 pointsr/ccna

Get both of these, they aren't released yet but will be shortly:
Lammle's [v3 CCNA study guide][1] (set for release in September)
Odom's [v3 CCNA study guide][2] (set for release in July)

As for labs, check out [this thread][3] for starters; Packet Tracer isn't perfect but it'll get you started.

[1]: https://www.amazon.com/Routing-Switching-Complete-Study-Guide/dp/1119288282/r "v3 CCNA study guide"
[2]: https://www.amazon.com/Routing-Switching-200-125-Official-Library/dp/1587205815 "v3 CCNA study guide"
[3]: https://www.reddit.com/r/ccna/comments/4phbns/psa_packet_tracer_70/ "this thread"

u/mars357 · 2 pointsr/WGU

I just passed this test on Monday. I thought the material was very good for this course. Especially the practice exam and labs from boson. I did pick up the Lammle book as well and it is great.

CCNA Routing and Switching Complete Study Guide: Exam 100-105, Exam 200-105, Exam 200-125 https://www.amazon.com/dp/1119288282/ref=cm_sw_r_cp_apa_SO3ZAbZ38V0BX

u/Reapestlife · 2 pointsr/ccna

Hey there and welcome! I'm IT focused with a 4 year in networking and security. I work as a Tier 2 lead for software / analyst type stuff. I started networking in the Army and said I was going to get my CCNA back in 07. I was off by 10 years. ;P

The lost feeling is ok!

The biggest thing is to not psych yourself out and feel overwhelmed. Focus on studying your books, using packet tracer or whatever you are comfortable with. Do the written questions at the end of each chapter, and takes notes on anything you feel is important. Also practice the acronyms!

https://www.amazon.com/Routing-Switching-Complete-Study-Guide/dp/1119288282/ref=asap_bc?ie=UTF8

Your version comes with labs and flash cards as well as 3 different practice exams. Also comes with a network simulator. (Don't know how good that is, haven't made it that far and am comfy with packet tracer but will try both) Only on chapter 3 after a week of focusing on it at LEAST 3 hours per day.

Don't worry about sprinting to get this cert but stay studious and hard ferocious on it. Remember why you are doing this and keep pushing. We are right there with you.

u/caca4cocopuffs · 2 pointsr/ccna

As far as the theory goes i personally liked todd lammle

You can also do cbt nuggets and look on youtube for free ccna videos.

The lab part you have to go boson. I loved their lab environment and labs. I know not everybody can afford to pay for it , so you can always substitute for packet tracer, or gns3.

Just be prepared lab wise. I failed the first time around because i forgot certain commands and wasted my time sifting through show runs.

u/WhoWhatOC · 2 pointsr/ccna

This one is the one I used since I am studying for part 2 now.

u/HoldThePao · 2 pointsr/ccna

I am just starting my test prep and this post will be a huge help to me with your list of study materials. On the Lammle Book did you get just the

CCENT ICND1 Study Guide: Exam 100-105 or




CCNA Routing and Switching Complete Study Guide: Exam 100-105, Exam 200-105, Exam 200-125

u/randomitguy42 · 2 pointsr/networking
u/Ajohnson8503 · 2 pointsr/ccna

As Epic has already stated the best book is Lammle, but I also like Odom's ICND1 & Odom's ICND2 as well. I would also suggest doing ITProTV or Chris Bryant for training videos.

Bryant lacks any lab documents, but you can download packet tracer and just pause the video and screenshot anything you need to do the labs.
If you spring for the high plan from ITPro you get access to labs and practice tests. I would skip the practice tests and spend the money on Boson ICND1/Boson ICND1&2

u/snakesarecool · 2 pointsr/learnpython

"Learning Python" is designed for experienced programmers getting into Python. http://www.amazon.com/Learning-Python-Edition-Mark-Lutz/dp/1449355730

u/smeagol13 · 2 pointsr/learnpython

Just for the exercises, I'd recommend Mark Lutz's Learning Python. Normally, I wouldn't recommend it, but since you ask for exercises, that's the only Python book I've read that's got exercises.

u/naevorc · 2 pointsr/gamedev

To get you acquainted with some of the basics, I recommend starting out with Codecademy's Python course.

Then perhaps move on to auditing this Intro to Computer Science 6.00 from MIT. It's completely free, has all the lectures as video, assignments and quizzes as PDFs.

Check out this playlist from a separate MIT course for the Recitations. Since this is also a 6.00 class the recitations are still relevant for you, and I recommend going over them as well once you've covered the appropriate material. (Or you could simply take that class)

Both codecademy and that class use Python 2.x, which is a bit different from today's 3.x, but honestly not so different that you can't learn from them (it seems basically the same to me except for a few expressions).

If you like books, I picked this one up after some research. Learning Python by Mat Lutz 5th ed. Pretty big textbook, about 1600 pages, but it's pretty clearly written and has a lot of exercises. It's also only $40 bucks so that's a plus.

A lot of people also recommend "Learn Python the Hard Way", but I haven't been using it.

u/insec99 · 2 pointsr/learnpython

http://www.amazon.com/Learning-Python-Edition-Mark-Lutz/dp/1449355730
Learning python by Mark Lutz is another exceptional book for python beginners would absolutely recommend it.

u/whattodo-whattodo · 2 pointsr/learnpython

I guess it depends where you're starting from. If you have limited experience in programming, then I suggest CodeAcademy >> Lynda >> Fiverr. This is the method I use for interns where I don't actually know what they're starting off with.

If you have a little more experience, I suggest the Lynda course & then Learning Python, 5th Edition. This is the method I used for myself.

u/AnAdversaryOfJesus · 2 pointsr/awakened

haha oh no I literally had just watched it. Though I wish :(

for reference here are the other syncs I remember:

  • Magicians EP (4/13 and 4/4)
  • Persefone (prog rock band) (4/12)
  • Rats in my ceiling (too long - not soon enough)
  • Doing misc stuff today/night when

    There was a 3rd persephone sync but I have not slept so my memory module is a bit floppy
u/George3d6 · 2 pointsr/cpp

If you actually want to learn to implement efficient algorithms and data structure in C++ you might have a long road ahead of you since loads of them are quite complex. If you're interests are purely in machine learning than I would suggest you make use of the containers and algorithms provided by std and boost.

Going more domain specific and using things like armadillo or eigen. The later is used in many popular NN libraries/frameworiks such as tensorflow while the former is (based on my subjective opinion) quit easy to use, more similar to matlab and used in a number of libraries such as dlib and opencv. These "higher" level libraries are likely even better suited for your needs since they may help you use multiple cpus and gpus for your algorithms.

Further more, if you are interested in getting something shipped out quickly check out some C++ ML libraries, my personal favorite is Dlib but its quite limited in scope. However, I assume you wish to implement your own algorithm, in which case you are in luck because most of these libraries are open source:

https://github.com/tensorflow/tensorflow/tree/master/tensorflow
https://github.com/davisking/dlib
https://github.com/opencv/opencv
https://github.com/Somnibyte/MLKit

(are some examples of such libraries).

For familiarizing yourself with C++ I'd recommend:

-> so documentation

-> [Programming: Principles and Practice Using C++](https://www.amazon.com/dp/0321992784/?tag=stackoverfl08-20](https://www.amazon.com/dp/0321992784/?tag=stackoverfl08-20)

-> Effective Modern C++

Stack overflow documentation has plenty of examples that explain things which might otherwise seem strange about the language, Programming: Principles and Practice Using C++ was written by the creator of the language, Bjarne Stroustrup, who also happens to be a university teacher, so I would say it could be considered an objectively reasonable starting point for learning C++ for someone not very experienced with programming and Effective Modern C++, while aimed at programmers that are already experienced with C++, might give you a bit of insight into understanding why old codebases look the way they do and how to improve them and not repeat their mistakes (its also quite a well written book in many aspects, quite a pleasure to read).

Also I would avoid any C++ centric book on algorithms and data structures written pre 2011 like the plague, since the language has evolved a lot and you might find yourself learning a very old.

u/exoticmatter · 2 pointsr/learnprogramming

Stoustrup has quite a good summary of the new features of C++11 at http://www.stroustrup.com/C++11FAQ.html. Scott Meyers Modern C++ book https://www.amazon.co.uk/Effective-Modern-Specific-Ways-Improve/dp/1491903996 will tell you more than you may want to know about the new reference types, constexpr, and the like, but it does require a reasonable C++ background. I'm not aware of any book that focuses on functional programming in modern C++, but I'd certainly like to read one!

u/loamfarer · 2 pointsr/learnprogramming

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

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

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

u/mrthesis · 2 pointsr/learnprogramming

I do, though I haven't really programmed in 3 years as I posted, I did read https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996 when it came out about a year ago and try and stay up to date on /r/cpp

u/nikkocpp · 2 pointsr/france

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

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

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

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

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

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

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

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

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

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

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

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

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

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

u/8bitshift · 2 pointsr/udk

There are books. Almost all of them suck. The only one that is any decent is mostly all theory so you will have to figure out the implementation details on your own:
http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135/ref=sr_1_1?ie=UTF8&qid=1321484581&sr=8-1

The problem is that a game engine very large and complex and often needs to be built with a particular game type in mind. There is a reason all of the UDK games look like UDK games.

Ask yourself this: Do you want to build an engine or a game? You are unlikely to do both in any reasonable amount of time (multiple years). Perhaps you can scale back your design's grand vision of an open world game to something more manageable with an off-the-shelf engine like UDK or Unity rather than build an engine.

u/CodyDuncan1260 · 2 pointsr/gamedev

Game Engine:

Game Engine Architecture by Jason Gregory, best you can get.

Game Coding Complete by Mike McShaffry. The book goes over the whole of making a game from start to finish, so it's a great way to learn the interaction the engine has with the gameplay code. Though, I admit I also am not a particular fan of his coding style, but have found ways around it. The boost library adds some complexity that makes the code more terse. The 4th edition made a point of not using it after many met with some difficulty with it in the 3rd edition. The book also uses DXUT to abstract the DirectX functionality necessary to render things on screen. Although that is one approach, I found that getting DXUT set up properly can be somewhat of a pain, and the abstraction hides really interesting details about the whole task of 3D rendering. You have a strong background in graphics, so you will probably be better served by more direct access to the DirectX API calls. This leads into my suggestion for Introduction to 3D Game Programming with DirectX10 (or DirectX11).



C++:

C++ Pocket Reference by Kyle Loudon
I remember reading that it takes years if not decades to become a master at C++. You have a lot of C++ experience, so you might be better served by a small reference book than a large textbook. I like having this around to reference the features that I use less often. Example:

namespace
{
//code here
}

is an unnamed namespace, which is a preferred method for declaring functions or variables with file scope. You don't see this too often in sample textbook code, but it will crop up from time to time in samples from other programmers on the web. It's $10 or so, and I find it faster and handier than standard online documentation.



Math:

You have a solid graphics background, but just in case you need good references for math:
3D Math Primer
Mathematics for 3D Game Programming

Also, really advanced lighting techniques stretch into the field of Multivariate Calculus. Calculus: Early Transcendentals Chapters >= 11 fall in that field.



Rendering:

Introduction to 3D Game Programming with DirectX10 by Frank. D. Luna.
You should probably get the DirectX11 version when it is available, not because it's newer, not because DirectX10 is obsolete (it's not yet), but because the new DirectX11 book has a chapter on animation. The directX 10 book sorely lacks it. But your solid graphics background may make this obsolete for you.

3D Game Engine Architecture (with Wild Magic) by David H. Eberly is a good book with a lot of parallels to Game Engine Architecture, but focuses much more on the 3D rendering portion of the engine, so you get a better depth of knowledge for rendering in the context of a game engine. I haven't had a chance to read much of this one, so I can't be sure of how useful it is just yet. I also haven't had the pleasure of obtaining its sister book 3D Game Engine Design.

Given your strong graphics background, you will probably want to go past the basics and get to the really nifty stuff. Real-Time Rendering, Third Edition by Tomas Akenine-Moller, Eric Haines, Naty Hoffman is a good book of the more advanced techniques, so you might look there for material to push your graphics knowledge boundaries.



Software Engineering:

I don't have a good book to suggest for this topic, so hopefully another redditor will follow up on this.

If you haven't already, be sure to read about software engineering. It teaches you how to design a process for development, the stages involved, effective methodologies for making and tracking progress, and all sorts of information on things that make programming and software development easier. Not all of it will be useful if you are a one man team, because software engineering is a discipline created around teams, but much of it still applies and will help you stay on track, know when you've been derailed, and help you make decisions that get you back on. Also, patterns. Patterns are great.

Note: I would not suggest Software Engineering for Game Developers. It's an ok book, but I've seen better, the structure doesn't seem to flow well (for me at least), and it seems to be missing some important topics, like user stories, Rational Unified Process, or Feature-Driven Development (I think Mojang does this, but I don't know for sure). Maybe those topics aren't very important for game development directly, but I've always found user stories to be useful.

Software Engineering in general will prove to be a useful field when you are developing your engine, and even more so if you have a team. Take a look at This article to get small taste of what Software Engineering is about.


Why so many books?
Game Engines are a collection of different systems and subsystems used in making games. Each system has its own background, perspective, concepts, and can be referred to from multiple angles. I like Game Engine Architecture's structure for showing an engine as a whole. Luna's DirectX10 book has a better Timer class. The DirectX book also has better explanations of the low-level rendering processes than Coding Complete or Engine Architecture. Engine Architecture and Game Coding Complete touch on Software Engineering, but not in great depth, which is important for team development. So I find that Game Coding Complete and Game Engine Architecture are your go to books, but in some cases only provide a surface layer understanding of some system, which isn't enough to implement your own engine on. The other books are listed here because I feel they provide a valuable supplement and more in depth explanations that will be useful when developing your engine.

tldr: What Valken and SpooderW said.

On the topic of XNA, anyone know a good XNA book? I have XNA Unleashed 3.0, but it's somewhat out of date to the new XNA 4.0. The best looking up-to-date one seems to be Learning XNA 4.0: Game Development for the PC, Xbox 360, and Windows Phone 7 . I have the 3.0 version of this book, and it's well done.

*****
Source: Doing an Independent Study in Game Engine Development. I asked this same question months ago, did my research, got most of the books listed here, and omitted ones that didn't have much usefulness. Thought I would share my research, hope you find it useful.

u/csp256 · 2 pointsr/cscareerquestions

You need to learn architecture. For this do NAND2Tetris and get some used architecture textbooks from the computer engineering department.

Caches are a big deal. People forget they exist, but you're going to need that knowledge in embedded. DMA's, or even normal memory reads, might only be coherant with some cache levels. That sentence should make you gag.

It gets worse when you start to think about concurrency; which you should, frequently, because it isn't the 90s anymore.

Get used to debugging. A lot. Learn practices that make that easier. I mean both learning archaic shit like ddd and writing unit tests, following best practices, etc. In embedded you're going to be violating best practices often, but it is important that this teaches you "... so the rest of my code is as clean as possible" than "... what's one more sin next to so many?".

Most architectures are the same nowadays but the GPU is a notable exception (though less and less each generation). Learn CUDA - use Udacity's course on the subject.

What every programmer should know about memory.

Start writing projects in C++. Go ahead and become a real C++ nerd. constexpr everything you can. You don't need other languages except maybe barebones Python, Bash, and the Turing complete language known as the Preprocessor. You'll learn ~what you really need to know of C from C++.

Get very familiar with 'Godbolt'.

Write for maximal performance. This is a dying art. You'll have a competitive advantage if you're good at it. If you don't become filled with rage by the word "premature" you're not optimizing enough.

Profile your damn code!

Profile your damn code, but with a different link this time!

Know your latency numbers.

Make SIMD a part of your daily life. You might not always have vectorization, but this is the easiest way to show you're capable of exploiting hardware features.

Computer graphics people are relatively well-respected by the embedded software community, and there is a lot of overlap as they use similar skills. Taking a detour through graphics is a good idea even if you don't plan to work in graphics. It's fun, too!

One way or the other you have to find a relevant application domain and solve problems in it... if not graphics try: video game programming, GPGPU, robotics, control systems, computer vision, animation, networking, VR/AR, and a bunch more.

Do not put VHDL or Verilog on your resume without first being sure you're masochistic enough.

Learn to start being very choosy in what advice you listen to. Most people solve problems under a totally different set of constraints, and what they'll preach until the sun burns out might be pants-on-head stupid for you.

You might already have picked up some of those funny ideas from being a web dev, so be on the watch for that.

The book Game Engine Architecture has a lot of real world wisdom from a much more relevant view, so read it.

Also, most people are taught in a way that is not really beneficial to an aspiring embedded SWE (e.g. Java schools). Most people have to learn that type of stuff as they mature as a programmer... hence the requirements. You can be hired into these types of positions right out of university, but you have to show a knack or focused interest in it.

And to be frank, it is just plain harder than web dev or slapping CRUD apps together, so fewer fresh grads would be able to do the work well even if they followed the 'right' path in university.

You can get some experience by writing on an embedded platform, but unless you want to probably shouldn't. The principles I am describing are more important.

Do one or two solid projects. Not dozens. Not perfect. Not amazing. Just one or two simple-but-pretty-good things in your portfolio, that show that you are not just a web dev or Java School Student.

Get relevant work experience as early as possible. Relevant means same skills, not same application domain.

Remember, it being hard isn't a bad thing. It is a barrier to entry that once you cross becomes a competitive advantage. The harder it is, the greater the advantage. Always double down on the hard technical skills.

u/chocobot · 2 pointsr/gamedev

I would go with <a href="http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135/ref=pd_sim_b_2">this one</a>
It does not focus on collision algorithms and graphics basics, instead goes right into message architectures, entity systems and so on. It's my favourite game dev book and I regularly look into it as a reference.

u/Lhopital_rules · 2 pointsr/IWantToLearn

Only about half of the programming industry has a degree directly related to IT or programming. Most have college degrees in something, but in the end the most valuable thing to someone hiring in IT is skills. Once you have the skills, you just need to get noticed.

I would recommend you learn Linux administration and web development. (Or you could learn Windows too - I don't know Windows well so I can't comment on it. Linux and Mac OS X are somewhat more popular in the programming world, but if you're looking to get into IT, not programming, then Windows administration might be more common.)

A good book to learn Linux is "The Linux Command Line".

https://www.amazon.com/Linux-Command-Line-Complete-Introduction/dp/1593273894/

For learning web development, you could read "
Learning PHP, MySQL & JavaScript: With jQuery, CSS & HTML5"

https://www.amazon.com/Learning-PHP-MySQL-JavaScript-jQuery/dp/1491978910/

Codecademy would also really help you in here:

https://www.codecademy.com/

If you have any questions, feel free to PM me and I'll do my best to respond.

u/robscomputer · 2 pointsr/linuxadmin

A few of my favorite books I reference and recommend. Just a note, many of these are older and can be purchased used for much less. Also if you can afford it, get a Safari subscription. I use my work Safari subscription but this alone has saved me from my book buying habit. Now I only buy "must have" books. :)

Official Ubuntu Server book - I really like this book as the writing style helped me "get it" with Linux. Kyle Rankin has a very good method of showing you the technology and then a quick run down to get the server working, followed by some admin tips. It's a just scratching the surface type of book but it's enough to get you started. I rarely use Ubuntu now, but this book helped me understand DNS and other topics that were IMHO harder to grasp from other books.

As a bonus, this book also has an entire chapter dedicated to troubleshooting. While this sounds obvious, it's a great read as it talks about dividing the problem, how to approach the facts, etc. Stuff a seasoned admin would know but might be hard to explain to a new admin.

The Linux Command Line: A Complete Introduction - You can read this book for free on the site, but having a paper copy is nice. As mentioned, you should have a very solid understanding of the command line. In my experience, I have seen co-workers struggle with basic shell scripting and even understanding how to make a single line for loop. This book covers the basics, moving to shell scripting and I think it's a good solid reference guide as well.

DevOps Troubleshooting: Linux Server Best Practices - This book is referenced a few times here but I'll throw another comment for it. Another book from Kyle Rankin and has the same straight to the point writing style. It's very quick reference and simple enough that you could give this to a new sysadmin and he or she could get started with some of the basic tools. While the book covers a good selection of basic services and tools, it's easy to get deeper into a chapter and find it's only discussing a handful of troubleshooting steps. The idea with this book is it's a quick reference guide, and if you want to get deeper into troubleshooting or performance, take a look at other books on the market. Either way, this is a great book I keep on my desk or reference through Safari.

UNIX and Linux System Administration Handbook (4th Edition) - Another popular book based on the comments here. This is a pretty big book, thin pages, but it's like a small brick of UNIX/Linux knowledge. While it's starting to get dated, it does give a great reference to many topics in the system administration world. The chapters can dive deep into the subject and offer more than enough information to get started but also understand the technology. The e-mail chapter I thought was great as well as the DNS. I think of this book as a overall guide and if I want to know more, I would read a book just on the subject, that's if I need more information. One thing to point out is this book makes use of different OS's so it's filled with references to Solaris, different UNIX versions, etc. Not a problem but just keep in mind the author may be talking about something outside the scope of vanilla Linux.

Shell Scripting: Expert Recipes for Linux, Bash and more - I found this book to be a good extenstion of the Linux Command Line book, but there are many many other Bash/Shell scripting books out there. The author has many of the topics discussed on his site but the book is a good reference for scripting. I can't stress enough how important shell scripting is. While it's good to know a more formal language like Python/Perl/etc, you are almost certain bash will be on the machine you are working on.

Systems Performance: Enterprise and the Cloud - I can't comment on this book beyond the first chapter, I'm still reading it now but it's reading similar to Brendan Gregg's site, and that's a great thing. If you don't know who this guy is, he's one of the top performance guys in the Solaris and now Linux world. He has some great infographics on his site, which I use for reference.

Use method for Linux

Linux Performance

Example of Linux performance monitoring tools

Hope this helps!

u/virtualmilkshake · 2 pointsr/ITCareerQuestions

"IT skills" is pretty broad. What is your IT degree- MIS, Cyber Security, Information Sciences, etc? The answer will really depend on what your degree is in and what your interests are. For example, I could tell you to study programming, but if your degree and interests align more with Cyber Security policy implementation, that might not be the best recommendation for you.

As somebody who has been on a few hiring committees, I'd say to work on your soft skills. In many cases, these are more important than technical capabilities. Specific soft skills I look for in new hires: organization, attention to detail, solid time management, communication, and self-sufficiency yet a team player. For us, we will take the candidate who doesn't know everything but has a good attitude and willingness to learn over the person who thinks they know everything and has a horrible attitude.

General technical skills you should toy around with: know your way around Active Directory in Windows, learn how to view event logs on a system (for Windows, hit your Start key and type in Computer Management), NIST Risk Management Framework, learn the parts of a computer and how to set them up and tear them apart. Learning Linux is also good- what I did to understand Linux better was purchase a Raspberry Pi and set it up to run Raspbian OS and RetroPie (to turn the Pi into a retro gaming machine). I also purchased The Linux Command Line and practice the commands from the book in the Raspbian terminal.

Also, before graduation, try to get some kind of internship, even if your major doesn't require one for graduation. It's a great opportunity for you to build hands-on experience and work in an IT environment doing real work. Oftentimes, you will learn something new in your internship that is not taught in school, and the experience might broaden your interests a bit (not to mention you may get a job offer or at least great references because of your internship!). If you need assistance in trying to figure out how to land a good internship, just let me know.

u/BRAF-V600E · 2 pointsr/bioinformatics

For Linux: The Linux Command Line: A Complete Introduction

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

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

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

EDIT:

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

u/serious_face · 2 pointsr/AskNetsec

http://www.amazon.com/The-Linux-Command-Line-Introduction/dp/1593273894


I bought and read this book as a before taking OSCP, and it's been one of the most useful books I've read.

u/gnullify · 2 pointsr/AskNetsec

I have 3 semesters left so my plan has been to seek an internship next summer closer to graduating. Do you think it's unwise to wait that long? My independent study could be better but I've become proficient with Linux using Arch as my daily driver and reading through The Linux Command Line. I'm also going through The Basics of Hacking and Pentesting which had me set up a "lab". Just finished the recon chapter. Also proficient in Python/Java/C++ ("proficient" might be a bold claim, rust considered).

u/plaid_avenger · 2 pointsr/sysadmin

I'm reading "The Linux Command Line" book by William E. Shotts, Jr. A good primer for when you want to get into Linux. It reads well and it doesn't dump a ton of information on you at once.

​

Huh. It's a "Best Seller" now, lol. https://amzn.to/2zgHrzV

u/N-Dufva · 2 pointsr/learnprogramming

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

Edit (added this after a bit of thinking):

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

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

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

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

u/Fight_till_the_end · 2 pointsr/learnpython

Hi,

I'm not an expert but this worked for me.

+++++++++++++

import bs4, requests

headers = {"User-Agent": 'Chrome'}

res = requests.get('https://www.amazon.com/Automate-Boring-Stuff-Python-Programming-dp-1593275994/dp/1593275994/ref=mt_paperback?_encoding=UTF8&me=&qid=%27',headers=headers)

​

soup = bs4.BeautifulSoup(res.text, 'lxml')

​

buy_box=soup.find(id='buyNewSection')

price = buy_box.find('span', class_='a-color-price')

​

print(price.text)

​

+++++++++++++++

u/ruffyen · 2 pointsr/sysadmin

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

​

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

​

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

u/TheNumberOneDuder · 2 pointsr/inventwithpython

Does your code look exactly like this?

request = requests.get("https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994")
request.raise_for_status

u/Blaq0nyxx · 2 pointsr/learnpython

No.

To open up the command prompt, look to the lower left hand corner and hit the windows icon.

In that search bar, type in "cmd" and hit enter.


BTW, id suggest you try, "Automate the Boring Stuff With Python".

Extremely easy read, and here:

https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994?crid=2GDSMX268GQHL&keywords=automate+the+boring+stuff+with+python&qid=1536777036&sprefix=automate+the+boring+%2Caps%2C216&sr=8-1&ref=sr_1_1



https://automatetheboringstuff.com/
(the FULL book)


https://www.youtube.com/watch?v=aFfDDdAPCbA (random review of the book)

https://www.youtube.com/watch?v=1F_OgqRuSdI (free course sample)


https://www.udemy.com/automate/
The book CLOSELY follows the course

u/illums · 2 pointsr/learnpython

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

Books I have read:

Code: The hidden language of computer hardware and software:

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

​

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

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

​

Android App::

SoloLearn:Python:

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

​

Youtube:

Python programming in one video:

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

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

​

Game:

CodeCombat

codecombat.com

​

Online Class:

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

​

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

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

    ​

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

    ​

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

I've found data structures more useful than algorithms. This book is highly rated and imo a must read for all programmers.

https://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional-ebook/dp/B000SEIBB8

u/dmazzoni · 2 pointsr/learnprogramming

> I learned in android studio and got to a level where I could create an app. Little did I know, it was just a giant main activity with 100s f methods. My friend looked at the code and told me I needed to learn polymorphism. Now I've redone the code so it's all inclasses.

Yep. This is a really common stage in learning. It sounds like you maybe went overboard and created way more classes than you needed.

Next time I might suggest starting with your working program with just one big activity, then splitting things into separate classes one at a time.

> Well, I have to keep updating a bunch of list sizes to the main activity, but the problem is that the polymorphism has the list sizes passing through 4 classes to get to the main activity. So, I set up a bunch of interfaces that react when things are done within the classes all encapsuled in one overreaching class. I don't know.

I think you're blaming "polymorphism", but polymorphism is just a tool. You can use it to make good designs or bad designs. It's quite easy to use it to design something that's cumbersome and less effective than if you had no classes at all, and it sounds like that may have happened here. It doesn't mean there's something wrong with polymorphism.

I think you're conflating two separate things here: (1) what's a good design, and (2) how do you make your code work.

(2) is easy. If you post a small, complete program that doesn't work, we can help you understand why. We can't do that if you just post vague questions and snippets of code.

(1) is hard. This takes years to get the hang of, and a lifetime to master. At a good software company you'd learn this slowly by mentorship - you'd have a senior programmer reviewing every change you make and guiding you through the design one feature at a time. You'd get help organizing your code long before it got to hundreds of functions.

If you don't have that option, or even if you do, I'd recommend the book Design Patterns as a way to better understand how to use polymorphism effectively.

You're also welcome to post such questions here, but they have to be very specific. You have to tell us what your app does, in a lot of detail, and how you've organized it into methods. I can't give you advice on something vague like "passing list sizes to the main activity" because I don't understand the purpose of the lists, the purpose of the sizes, or the purpose of passing them to the main activity.

u/twolfson · 2 pointsr/Frontend

The Little Schemer was a good read when I wanted to learn about recursion. It cleared everything right up =) Only the first few chapters are necessary:

http://www.amazon.com/The-Little-Schemer-4th-Edition/dp/0262560992

u/LucidityWaver · 2 pointsr/learnjava

This seems to have been recommended quite a few times on Java related subreddits: http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601

u/el_chief · 2 pointsr/java
u/KagakuNinja · 2 pointsr/learnprogramming

I personally always use an IDE, because you will soon discover that there are dozens of libraries used by real world projects, and you cannot possibly know everything about them. However, IDEs have options to turn off autocomplete, incremental compilation and syntax highlighting, if you are a masochist... Google is your friend.

I read Algorithims in C++ by Sedgewick, and it was great, but not important for learning to code. You need to know the basic concepts of: the Java standard library, especially collections, looping constructs, etc. Any good tutorial should cover these. General CS knowledge is great and you will be quizzed about it in interviews. However, not necessary when starting out.

Eventually you will need to know about the Java memory model, concurrency and thread safety this was the Bible back in the day, maybe there more up-to-date options.

Math is an interesting topic; in college, you have to learn calculus, which is where many of us decide that we don't like math. This is a pity, since programming is applied math. Also, math gets more interesting, but often weird, when you start studying upper division topics.

Most data structures are based on set theory and relations, which are taught in Discrete Math. To understand what a function is, you need to know about Set Theory and/or Category Theory. Category Theory is fascinating, and particularly important for understanding functional programming. This is a great resource. To understand graphics, you need to know about Geometry and Linear Algebra.

It also helps to understand the basics of Probability, Combinatorics and Abstract Algebra. All of this math is advanced stuff however, most programmers don't need to know any of that...

u/stefan_kurcubic · 2 pointsr/Clojure

i've been looking for comprehensive guide on clj concurrency

today i got https://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601

thank you for this

u/xpto123 · 2 pointsr/java

I think Java Performance and Java Concurrency In Practice are two of the main ones. Especially JCIP is the reference for concurrent programming.

u/jopforodee · 2 pointsr/androiddev

I highly recommend Java Concurrency in Practice if you don't mind buying a book. http://smile.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601

It really demystified threading for me and I felt more comfortable with when something should be synchronized.

u/Chomskyismyhero · 2 pointsr/learnprogramming

Head First Java

Thinking in Java

Effective Java

Java Concurrency in Practice

Best $150 you'll ever spend. Read in order listed.

u/oorza · 2 pointsr/javahelp

Read, in this order:

  1. Thinking In Java.

  2. Effective Java

  3. Java Concurrency in Practice

    Those three books should get you wherever you need to be, without getting more specific books (e.g. framework books).
u/vix86 · 2 pointsr/learnprogramming

If you are using concurrency a lot then it might be worth it to take a look at: Java Concurrency in Practice (I believe that's the book I've seen recommended before.)

It's a little old but still mostly valid.

u/chemosabe · 2 pointsr/java

> Oh boy, I know nothing about either of those things.

Get this book pronto. It's essential.

u/ThreeHolePunch · 2 pointsr/compsci

In addition to that book, I would also highly recommend The Art of Computer Programming books by Knuth.

u/IRLeif · 2 pointsr/INTP

My elementary school and high school teachers made me detest mathematics at an early age, but I have taken up interest for it in later years. Last week, I purchased the books Concrete Mathematics and The Art of Computer Programming, which I plan to start reading soon. But first I need to school myself on some topics with Khan Academy and MIT OpenCourseWare. I've also posted this thread last week on /r/learnprogramming hoping to get some input, and lurking at /r/math and the Mathematics StackExchange. I'm quickly gaining interest for the subject :)

u/ivansonofcoul · 2 pointsr/learnprogramming

General:

Pragmatic Programmer

C language



This one is a lot tougher read and is probably one of the most famous book sets in Computer Science
Computer Programming Don Knuth

Edit: fixed spacings

u/RainbowHearts · 2 pointsr/AskComputerScience

If you only read one work on the topic, it should be The Art of Computer Programming by Don Knuth: https://www.amazon.com/dp/0321751043/

The textbook for MIT's 6.001 (introduction to computer science) is the much loved Structure and Interpretation of Computer Programs by Abelson, Sussman, and Sussman: https://www.amazon.com/dp/0262510871/ . Originally it was in Scheme but the 2nd edition is in Python.

Finally, because people asking about computer science are often asking about something a bit broader than pure computer science, I recommend Code: The Hidden Language of Computer Hardware and Software by Charles Petzold. It is a thorough tour of computing in practice at every level, top to bottom. https://www.amazon.com/dp/073560505X/

u/SQLSavant · 2 pointsr/learnprogramming

Some of these are directly related to programming and some are not but are additional reading that touch on skills that most every programmer should have some concept or idea of.

I've read all of these at some point throughout my career and can attest to their usefulness. Here's my personal list:

u/valbaca · 2 pointsr/cscareerquestions

These are books I actually own and would recommend. Of course there are other great/better books out there, but I'm going to stick with what I've actually bought and read or "read".

I say "read" because several books are NOT meant to be read cover-to-cover. These typically have about 1/3 that you should read like normal, and then skim the rest and know what's in the rest so that you can quickly reference it. These books are no less important, and often even more important. I've marked these kind of books as #ref for "read for reference". Normal books that should be read cover-to-cover are marked #read


For learning your first language: This is really the hardest part and unfortunately I don't have any books here I can vouch for. I started with "C++ for Dummies" and am not including a link because it's bad. Your best bet is probably "Learning <language>" by Oreily. I also love the Oreily pocket books because you can carry them and skim while on the bus or the john, but you can just do the same with your smartphone. Pocket Python, Pocket Java, Pocket C++

Top Recommendations:

Accelerated C++ #read Made for people who already know another language and want to pickup C++. Also great for people who need a refresher on C++. I really like how it doesn't start with OOP but gets you familiar with the imperative parts of C++ before diving into OOP.

The Algorithm Design Manual #ref This is my new favorite book and the first I would send back in time to myself if I could. Each algorithm & data structure is given a mathematical breakdown, pseudocode, implementation in very readable C, a picture (very helpful), and an interesting war story of how it Saved The Day.


Cracking the Coding Interview #read I originally avoided this book like the plague because it represented everything I hate about coding interviews, but many interviewers pull questions straight from this book so this book can equal getting a job. Put that way, it's ROI is insane.

The Pragmatic Programmer #read Must-have for any profressional software engineer that covers best-practices for code and your growth. You can also find the raw tips list here

Head First Design Patterns #read Many prefer the "GoF/Gang of Four" Design Patterns which is more iconic, but Head First is a modern-version using Java to cover actual design patterns used day-to-day by programmers.

For Intermediates:

Effective Java or Effective C++ and Effective Modern C++ #read When you're ready to go deep into one language, these books will give you a huge boost to writing good Java and C++.

Design Patterns #ref You'll want to get this at some point, but early on it's too much for a beginner and many of the patterns are obsolete.

The Art of Computer Programming #ref The programming "bible" but like Design Patterns you should hold off on this iconic book until you've got your basics covered. It would make for a great purchase with your first paycheck or first promotion :)

u/GISftw · 2 pointsr/gamedev

> not well versed in these data structures.

Donald Knuth books

u/MoTTs_ · 2 pointsr/webdev

> 4) All this aside, I wish I spend more time in college learning computer science. I don't mean how to use PHP, or Ruby, or what HTML is. I mean how to properly setup an R-tree, how low-level systems work, proper indexing methods, security, etc. These topics would be incredibly valuable, but not always easy to learn.

You should read Knuth. You'll effectively be learning from one of the most prestigious computer scientists of one of the most prestigious schools for the low price of $177.

u/MrKlean518 · 2 pointsr/artificial

How mathy are you trying to get? Currently taking a Machine Learning/AI Independent study course for my masters. The class is split into three parts:

Part 1: Multivariate Statistics based on "Multivariate Statistical methods" by Donald F. Morrison, with Schaum's Outline of Statistics as supplemental material.

Part 2: Pattern Recognition and Machine Learning by Christopher Bishop

Part 3: Introduction to Artifical Intelligence by Phillip C. Jackson

Multivariate Statistics

Machine Learning

AI

u/ebenezer_caesar · 2 pointsr/bioinformatics

Chapter 7 of Chris Bishop's book Pattern Recognition and Machine Learning has a nice intro to SVMs.

Here is a list of papers where SVMs were used in a computational biology

> Gene Function from microarray expression data
>
> Knowledge-based analysis of microarray gene expression data by using support vector machines, Michael P. S. Brown, William Noble Grundy, David Lin, Nello Cristianini, Charles Walsh Sugnet, Terence S. Furey, Manuel Ares, Jr., David Haussler, Proc. Natl. Acad. Sci. USA, vol. 97, pages 262-267
> pdf
> http://www.pnas.org/cgi/reprint/97/1/262.pdf
>
> Support Vector Machine Classification of Microarray Gene Expression Data, Michael P. S. Brown William Noble Grundy, David Lin, Nello Cristianini, Charles Sugnet, Manuel Ares, Jr., David Haussler
> ps.gz
> http://www.cse.ucsc.edu/research/compbio/genex/genex.ps
>
> Gene functional classification from heterogeneous data Paul Pavlidis, Jason Weston, Jinsong Cai and William Noble Grundy, Proceedings of RECOMB 2001
> pdf
> http://www.cs.columbia.edu/compbio/exp-phylo/exp-phylo.pdf
>
> Cancer Tissue classification
> from microarray expression data, and gene selection:
>
> Support vector machine classification of microarray data, S. Mukherjee, P. Tamayo, J.P. Mesirov, D. Slonim, A. Verri, and T. Poggio, Technical Report 182, AI Memo 1676, CBCL, 1999.
> ps.gz
> PS file here
>
> Support Vector Machine Classification and Validation of Cancer Tissue Samples Using Microarray Expression Data, Terrence S. Furey, Nigel Duffy, Nello Cristianini, David Bednarski, Michel Schummer, and David Haussler, Bioinformatics. 2000, 16(10):906-914.
> pdf
> http://bioinformatics.oupjournals.org/cgi/reprint/16/10/906.pdf
>
> Gene Selection for Cancer Classification using Support Vector Machines, I. Guyon, J. Weston, S. Barnhill and V. Vapnik, Machine Learning 46(1/3): 389-422, January 2002
> pdf
> http://homepages.nyu.edu/~jaw281/genesel.pdf
>
> Molecular classification of multiple tumor types ( C. Yeang, S. Ramaswamy, P. Tamayo, Sayan Mukerjee, R. Rifkin, M Angelo, M. Reich, E. Lander, J. Mesirov, and T. Golub) Intelligent Systems in Molecular Biology
>
> Combining HMM and SVM : the Fisher Kernel
>
> Exploiting generative models in discriminative classifiers, T. Jaakkola and D. Haussler, Preprint, Dept. of Computer Science, Univ. of California, 1998
> ps.gz
> http://www.cse.ucsc.edu/research/ml/papers/Jaakola.ps
>
> A discrimitive framework for detecting remote protein homologies, T. Jaakkola, M. Diekhans, and D. Haussler, Journal of Computational Biology, Vol. 7 No. 1,2 pp. 95-114, (2000)
> ps.gz
> PS file here
>
> Classifying G-Protein Coupled Receptors with Support Vector Machines, Rachel Karchin, Master's Thesis, June 2000
> ps.gz
> PSgz here
>
> The Fisher Kernel for classification of genes
>
> Promoter region-based classification of genes, Paul Pavlidis, Terrence S. Furey, Muriel Liberto, David Haussler and William Noble Grundy, Proceedings of the Pacific Symposium on Biocomputing, January 3-7, 2001. pp. 151-163.
> pdf
> http://www.cs.columbia.edu/~bgrundy/papers/prom-svm.pdf
>
> String Matching Kernels
>
> David Haussler: "Convolution kernels on discrete structures"
> ps.gz
> Chris Watkins: "Dynamic alignment kernels"
> ps.gz
> J.-P. Vert; "Support vector machine prediction of signal peptide cleavage site using a new class of kernels for strings"
> pdf
>
> Translation initiation site recognition in DNA
>
> Engineering support vector machine kernels that recognize translation initiation sites, A. Zien, G. Ratsch, S. Mika, B. Scholkopf, T. Lengauer, and K.-R. Muller, BioInformatics, 16(9):799-807, 2000.
> pdf.gz
> http://bioinformatics.oupjournals.org/cgi/reprint/16/9/799.pdf
>
> Protein fold recognition
>
> Multi-class protein fold recognition using support vector machines and neural networks, Chris Ding and Inna Dubchak, Bioinformatics, 17:349-358, 2001
> ps.gz
> http://www.kernel-machines.org/papers/upload_4192_bioinfo.ps
>
> Support Vector Machines for predicting protein structural class Yu-Dong Cai*1 , Xiao-Jun Liu 2 , Xue-biao Xu 3 and Guo-Ping Zhou 4
> BMC Bioinformatics (2001) 2:3
> http://www.biomedcentral.com/content/pdf/1471-2105-2-3.pdf
>
> The spectrum kernel: A string kernel for SVM protein classification Christina Leslie, Eleazar Eskin and William Stafford Noble Proceedings of the Pacific Symposium on Biocomputing, 2002
> http://www.cs.columbia.edu/~bgrundy/papers/spectrum.html
>
> Protein-protein interactions
>
> Predicting protein-protein interactions from primary structure w, Joel R. Bock and David A. Gough, Bioinformatics 2001 17: 455-460
> pdf
> http://bioinformatics.oupjournals.org/cgi/reprint/17/5/455.pdf
>
> Protein secondary structure prediction
>
> A Novel Method of Protein Secondary Structure Prediction with High Segment Overlap Measure: Support Vector Machine Approach, Sujun Hua and Zhirong Sun, Journal of Molecular Biology, vol. 308 n.2, pages 397-407, April 2001.
>
> Protein Localization
>
>
> Sujun Hua and Zhirong Sun Support vector machine approach for protein subcellular localization prediction Bioinformatics 2001 17: 721-728
>
>
> Various
>
> Rapid discrimination among individual DNA hairpin molecules at single-nucleotide resolution using an ion channel
> Wenonah Vercoutere, Stephen Winters-Hilt, Hugh Olsen, David Deamer, David Haussler, Mark Akeson
> Nature Biotechnology 19, 248 - 252 (01 Mar 2001)
>
> Making the most of microarray data
> Terry Gaasterland, Stefan Bekiranov
> Nature Genetics 24, 204 - 206 (01 Mar 2000)

u/goodbeertimes · 2 pointsr/india

Quick question. Did you read the book PRML.

I found it to be an incredible book.

u/noman2561 · 2 pointsr/MachineLearning

Well I do research in pattern recognition and computer vision so I'll try to answer this. An image is a grid of sensor readings. Each reading from a sensor is called a pixel which is the feature vector for that location in the image plane. Features based on spectral characteristics, spatial characteristics, and even motion characteristics (in video) may be derived from the original input (the reading from the sensor). Transformations are applied to the input which consider different aspects of the pixel's spectral components ( [R,G,B] - tristimulus ). A number of different methods exploit spatial correlation too. These features are then used in ML systems as part of the feature vector ( [T1,T2,T3,F1,F2,F3,F4,...] ). As far as books, I learned filtering methods using

"Two-Dimensional Signal and Image Processing" -Lim

I learned pattern recognition using

"Pattern Recognition" -Theodoridis and Koutroumbas

and

"Pattern Recognition and Machine Learning" -Bishop

The last one approaches from more of a CS side but doesn't go as in-depth. The field of CV/PR is pretty large and includes a lot of methods that aren't covered in these books. I would recommend using OpenCV or Matlab to handle images. My personal preference is Python but C++ and Matlab is are both close seconds.

u/ANONYMOUSACCOUNTLOL · 2 pointsr/MachineLearning

May I suggest doing a search in r/statistics and r/machinelearning for learning-foundation books for ML? I think that'll turn up quite enough hits to get you pointed in the right direction.

I always talk up the one I used, which I liked:
http://www.amazon.com/Pattern-Recognition-Learning-Information-Statistics/dp/0387310738

u/adomian · 2 pointsr/learnmachinelearning

If you're worried about not doing projects and participating in Kaggle competitions, why not do those things? They're pretty low risk and high reward. If you're feeling shaky on the theory, read papers and reference textbooks, take notes, and implement things that interest you. For deep learning stuff there are some good resources here: https://github.com/ChristosChristofidis/awesome-deep-learning. For more traditional methods you can't go wrong with Chris Bishop's book (try googling it for a cheaper alternative to Amazon ;): https://www.amazon.com/Pattern-Recognition-Learning-Information-Statistics/dp/0387310738.
Side projects can really help here, and the key is to use references, but don't just copy-paste. Think of something you'd like to apply machine learning to with a reasonable scope. Search google scholar/arxiv for papers that do this or something similar, read them, and learn the techniques. For reading research papers in an area where you're not extremely knowledgeable, use the references in the text or google things you don't know and make sure you understand so you could teach someone else. If you're interested in the topic and exhausted the references, go up the tree and use google scholar to find papers that list the one you're reading as a reference - you usually find interesting applications or improvements on the technique. You can also often find open source training data in the appendices of papers. Kaggle also has a ton of datasets, including obviously the ones they provide for competitions.

u/scohan · 2 pointsr/compsci

I think this might be beyond what you're looking for, but I really enjoyed Pattern Recognition and Machine Learning. It's very heavy on statistics, and if you're looking into machine learning methods, it has a wonderful amount of mathematical information given in a fairly clear manner. It might be severe overkill if this isn't your field, but I thought I'd mention it since you said AI.

For AI in general, I see Artificial Intelligence: A Modern Approach used a lot. It gives some solid basic concepts, and will be helpful in getting you started writing basic AI in your applications.

I can't really recommend discrete math because, despite enjoying it quite a bit, I haven't found a textbook that I like enough to endorse. My textbook for it in college was by Rosen, and I despised it.

edit:
Just double checked it, and I would stay far away from the first recommendation unless you have a very extensive knowledge of sophisticated statistics. I like it because it gives the math that other books gloss over, but it's not good for an introduction to the subject. It's almost like going through a bunch of published papers on some new cutting edge methods. The ever popular Machine Learning by Thomas Mitchell is a much better introduction to machine learning. If you want to obtain the mathematical depth necessary for your own research into the field, go with the other book after you've gotten acquainted with the material. I'll leave my suggestion up anyway in case anyone here might find it interesting.

u/illogical_vectors · 2 pointsr/MachineLearning

The Udacity machine learning track that you've probably seen is actually wonderful. It does a good job of scaling from entry level (even going down to basic data analysis) up to DNN. They charge for the nano-degree, but you can access all of the lectures without that.

As far as reading papers, I would actually recommend against it at this point. They're highly minute unless you're actually doing research into new techniques. If you're mostly looking to build a portfolio for employers, not a good place. If you're looking for a reading source Bishop's Machine Learning and Pattern Recognition is one of my favorites.

u/shaggorama · 2 pointsr/math

Ok then, I'm going to assume that you're comfortable with linear algebra, basic probability/statistics and have some experience with optimization.

  • Check out Hastie, Tibshirani, & Friedman - Elements of Statistical Learning (ESLII): it's basically the data science bible, and it's free to read online or download.
  • Andrew Gelman - Data Analysis Using Regression and Multilevel/Hierarchical Models has a narrower scope on GLMs and hierarchical models, but it does an amazing treatment and discusses model interpretation really well and also includes R and stan code examples (this book ain't free).
  • Max Kuhn - Applied Predictive Modeling is also supposed to be really good and should strike a middle ground between those two books: it will discuss a lot of different modeling techniques and also show you how to apply them in R (this book is essentially a companion book for the caret package in R, but is also supposed to be a great textbook for modeling in general).

    I'd start with one of those three books. If you're feeling really ambitious, pick up a copy of either:

  • Christopher Bishop - Pattern Recognition and Machine Learning - Bayes all the things.
  • Kevin Murphy - Machine Learning: A Probabilistic Perspective - Also fairly bayesian perspective, but that's the direction the industry is moving lately. This book has (basically) EVERYTHING.

    Or get both of those books. They're both amazing, but they're not particularly easy reads.

    If these book recommendations are a bit intense for you:

  • Pang Ning Tan - Introduction to Data Mining - This book is, as it's title suggests, a great and accessible introduction to data mining. The focus in this book is much less on constructing statistical models than it is on various classification and clustering techniques. Still a good book to get your feet wet. Not free
  • James, Witten, Hastie & Tibshirani - Introduction to Statistical Learning - This book is supposed to be the more accessible version (i.e. less theoretical) version of ESLII. Comes with R code examples, also free.
    Additionally:

  • If you don't already know SQL, learn it.
  • If you don't already know python, R or SAS, learn one of those (I'd start with R or python). If you're proficient in some other programming language like java or C or fortran you'll probably be fine, but you'd find R/python in particular to be very useful.
u/vindvaki · 2 pointsr/math

How much depth do you need? For the basics of linear algebra, the text on Wikibooks should suffice. Make sure you read about eigenvalues. I like the coverage of PCA in section 12.1 of Bishop's book. As for differential equations, I'm not familiar enough with them to recommend a textbook on the topic.

u/Broseidon241 · 2 pointsr/datascience

I did this, but I came to data science in the final year of my PhD when I got a job at a startup. I started with R, then SQL, then Python. I currently work in data science, moving internal ML products into production settings. I also do research - and knowing how to conduct proper trials is great if the company you work for gives you freedom in how something you've built is rolled out. I can also blend my degree with ML, e.g. designing batteries of questions to identify 'good fit' candidates for a given role - I combine the battery results with future performance data and continually refine the question set / improve the model. As well, I'm a good fit for UX and dabble in that. The combo skillset will give you the ability to produce value in many different ways.

The things that helped me most were:

  • Early on, Programming for Everybody - very gentle intro, and well taught.

  • Andrew Ng's machine learning course.
  • SQLzoo.
  • The Introduction to Statistical Learning course and book then, later, The Elements of Statistical Learning.
  • Buying big fat books about the things I wanted to learn, and working through them (e.g., Probabilistic Graphical Models, Pattern Recognition).
  • Coding algorithms from scratch, starting with linear regression and working my way to DNNs and RNNs. Do it in R, then Python, then Scala if you're ambitious.
  • Doing the Kaggle intro competitions in R and then translating to Python - Titanic, census dataset, etc, and using a variety of approaches for each (i.e. xgboost, sklearn, tensorflow).

    It can be overwhelming, but don't worry. Do one course to completion, with that as your only goal. Then do the next. Then work on a kaggle thing. Then work through a book. One thing at a time - you might get anxious or be uncertain or want to do multiple things at once, but just start with one thing and focus on that and that alone. You'll get where you want to go.

    I also brushed up on my linear algebra / probability using MITs open courses and khanacademy.

    Beyond all this, I found that learning a lot about ML/AI really expanded my thinking about how human beings work and gave me a new and better lens through which to view behaviour and psych research/theories. Very much recommend to all psychologists.

    Good luck!
u/upulbandara · 2 pointsr/MachineLearning

I think it is completely possible. I'm ML engineer with M.Sc. in Computer Science. Presently, there are so many avenues (MOOCs, Kaggle, and books) to learn ML. But I believe the best approach would be:

  1. Buy a good machine learning book. My favorite one is Pattern Recognition and Machine Learning by Christopher M. Bishop. URL: https://www.amazon.com/Pattern-Recognition-Learning-Information-Statistics/dp/0387310738
  2. When you read the book, implement ML algorithms using Python (or R, or Julia, or etc.)
  3. Pick few ML related projects which are completely away from your comfort zone (for example a toy version of Tensorflow) and somehow complete these projects.
  4. Create a Github account and push your projects/artifacts.
u/TheSummarizer · 2 pointsr/programming

Mitchell's quite long in the tooth now. The current best text is probably this one.

u/dfmtr · 2 pointsr/MachineLearning

You can read through a machine learning textbook (Alpaydin's and Bishop's books are solid), and make sure you can follow the derivations. Key concepts in linear algebra and statistics are usually in the appendices, and Wikipedia is pretty good for more basic stuff you might be missing.

u/tetramarek · 2 pointsr/compsci

I watched the entire course of Data Structures and Algorithms by Richard Buckland (UNSW) and thought it was excellent.
http://www.youtube.com/playlist?list=PLE621E25B3BF8B9D1

There is also an online course by Tim Roughgarden (Stanford) currently going on. It's very good but I don't know if you can still sign up.
https://class.coursera.org/algo

Topcoder.com is a fun place to test your skills in a competitive environment.

That being said, based on the description you are interested in things which don't usually fit into algorithms books or courses. Instead, you might want to look into machine learning and maybe even NLP. For example Pattern Recognition and Machine Learning by Bishop and Foundations of Statistical Natural Language Processing by Manning & Schuetze are great books for that.

u/Axana · 2 pointsr/Retconned

The article linked at the bottom of the post was used as a launching point for an entire non-fiction book called The Shallows (not related to the upcoming movie). It's same author.

I strongly recommend reading it. Or at least read the full article if you can't get the book.

u/IBuildBusinesses · 2 pointsr/Futurology

You might want to check out the quite excellent book The Shallows: What the Internet is Doing to Our Brians.

It's written well, and well researched with a lot of supporting references to the underlying studies that have been done. Some of it creeped me out a bit and actually got me off the computer a bit more and out into nature more.

Edit: fixed incorrect formatting code

u/mgunay95 · 2 pointsr/learnprogramming

This isn't necessarily related to computer science- but it's a book about the effect computers, and technology in general have had over humanity. It's called The Shallows: What the Internet Is Doing to Our Brains. Super interesting read, gives a lot of cool perspective.

https://www.amazon.com/Shallows-What-Internet-Doing-Brains/dp/0393339750/ref=zg_bs_3508_19?_encoding=UTF8&psc=1&refRID=72HMTJQ0YSB5JCKGP45W

u/raveofthrones · 2 pointsr/Mydaily3

Raveofthrones to-do list for 08/04/2014:

u/BallerGuitarer · 2 pointsr/GetMotivated

There's a book called The Shallows that goes into how spending excessive amounts of time on the internet actually rewires our brain in the same way doing anything for long periods of time does (such as practicing a musical instrument), except this rewiring causes us to lose our ability to focus and maintain our attention span for long periods of time.

While I didn't quit social media entirely, it did make me be more cognizant of the amount of time I spend on social media and reddit. In fact, I think I hardly go on Facebook anymore, and I don't mindlessly click through links on reddit anymore.

Great book, I highly recommend it.

u/inpham0us · 2 pointsr/CompTIA

If you've failed it 5 times, you know you are studying the wrong way. What are your study methods? Did you read the A+ holy bible by Mike Meyers?

Read this from front to back. All of it. I know it's going to take you while. It is a freaking huge book...but you can do it within a few weeks. Even if you've already read it before. Read it again and take notes. And if you're already computer savvy, you don't have to read line by line. Scan through it, anything you already know you can skip. The parts that state 801, you can skip, since I assume you already passed that.

Make sure you watch all of the 802 Professor Messer videos right before the exam. They don't cover absolutely everything on the exam objectives in depth but the majority of it is there. The few days before you take the exam, find and take every online practice test you can find on the internet. Google: Comptia A+ 802 free practice exam and make sure you're getting scores of 90% or more.

I got a mid-800 score on the 802 on the first try but I can tell you know it's not a cakewalk like most people will say. It's only easy if you study the proper way. I can't imagine acing without studying...and I've been been building my own rigs, setting up SOHOs and installing/configuring windows for 20 years.

Change your study habits because it's not working.

u/Merakel · 2 pointsr/ITCareerQuestions

Seems really expensive for what should be a maybe a 1/3rd of the price.

https://www.amazon.com/CompTIA-Certification-Guide-220-801-220-802/dp/007179512X

u/upward_bound · 2 pointsr/computertechs

Ok, I just passed the A+ a few weeks ago (didn't need it, but figured I needed something to get me over the hump and actually start getting my certs).

I used Mike Meyer's CompTIA Cert Guide (I took the 2009 version of the test btw)

I used Transcender test prep (it was provided for free as part of the 5 day class I took)

I watched all of the Professor Messor videos on youtube.

I took a class (more on this below)

I used Exam Cram

The first exam is the difficult one. It's not difficult in that you'll need to have a lot of experience or that the questions are tricky. It's difficult in the sense that you'll need to know a little about a LOT of stuff. For example, do you know how many pins are in a centronics cable? Do you know if it's serial or parallel? Do you know what device it's primarily used for? (36, parallel, printer) I studied for about 2-3 weeks pretty seriously (daily sample tests, questions, etc...did it during free time at work and after work at home). This study took place after I had read both of the books cover to cover (it's boring).

The second example (practical application) is cake walk if you've a) passed the essentials and b) have worked in IT support at all. Just a bunch of scenario questions. I studied about 3 hours for this exam.

I passed both exams on the first try about 2 months apart (I took a vacation in between).

The class was pointless knowledge wise. I've been in IT for a long time so it really was just for people who have ZERO experience. It helped since my work paid for the class and it included the Exam Cram book, transcender test prep access, and vouchers for both exams.

So to summarize my huge wall of text.

  1. Read the Mike Meyers book cover to cover.

  2. Read the Exam Cram book cover to cover.

  3. Watch all of the professor messer videos.

  4. Allow yourself 2-3 weeks of serious study after having done the previous line items to memorize protocols, cable types, speeds, etc.

  5. Take the exams :)

    There will be people who disagree or study differently. More power to them. This is how it worked for me though. I will say that it's probably possible to pass the exam without doing some of this, but I really hate wasting money and would have been devastated if I had to re-take the exam.

    Anyway. Here are some links. I'm sending you the 800 exam stuff since I imagine you'll be doing that instead of the 700 series (which is discontinued in a few months).

    Mike Meyers

    Exam Cram

    Transcender test prep

    Professor Messor videos
u/PickleyPerkleton · 2 pointsr/CompTIA

Just scored 827 on the 220-801 exam. I'm using this text though I hear great things about the Meyers book. Watch these videos and puchase his study guides they're excellent value. Read a chapter then watch the appropriate video, a few a week is a great pace. Then once you get through and are somewhat confident in answering the questions in the book, book your exam and have a week where you really blitz the material (around 3 chapters a day). Practice exams would be bonus, I used the ones that came with this but that was a loaner from a friend.

u/robotsexx · 2 pointsr/CompTIA

Obligatory Professor Messer link.

Those videos and a good book like this one or this one seem to do the trick for most people.

u/bk_e4fc · 2 pointsr/CompTIA

I passed 801 on Friday and 802 on Monday.

Yes, they did have random questions about pins of RAM. IIRC, the question was, your lab has 184-pin memory sticks, what kind of RAM is it?

The most random question of all on 801 was identifying, in order, the colors of wire on an RJ-11 pin. WTF? I just guessed and moved on.

I used the Mike Meyers book and this practice exam book.

The Meyers book is good for learning the material, but the questions are kind of easy. The Practice Exam book has much more difficult question, but the difficulty of the questions helps you learn more.

Problem with both books is that they don't cover simulations at all. I had no idea they were going to be on the exam until I took the exam on Friday. Turns out that the Practice Exam book does mention simulations, but does not actually give you a sample situation.

The simulations on 802 actually aren't that hard, because everything that is not relevant is disabled. For example, there was one question where you have to set a password for a user and everything in control panel was disabled except for the way to set the password. So even if you couldn't remember exactly how to get to the user account page, it's easy to find.

Feel free to ask any other questions while it's fresh in my mind.

u/CaptMurphy · 2 pointsr/CompTIA

I'm in a similar situation as yourself, studying for A+ and onward from there. I've heard Micheal Meyers All-in-One Exam Guide (8th edition) is very good. I'm not nearly through it enough to give my opinion on it, but I have never heard someone speak poorly of it.

I'm also going through Professor Messer's A+ videos. You can buy them, or you can watch them all totally free right on his site. I think it's a very good resource, and again I've only heard good things. They're broken down very well, and easy to handle in small chunks.

Beyond that I'm just a noob myself and can't offer much else.

u/BlackOptimist · 2 pointsr/techsupport

Ah! Okay. Now it makes a lot of sense. Also Is the book you were talking about?

u/StarkCommando · 2 pointsr/CHICubs

Yeah, I got my A+ back in May to get my foot in the door with IT. There are two tests that aren't that difficult if you have a decent understanding of computers. The first tests you on hardware, the second is focused on the Windows OS.

To study, I used the Mike Meyers A+ Cert guide and Professor Messer's videos. I cannot speak highly enough about those videos.

u/PranicEther · 2 pointsr/CompTIA

I find them very helpful. I'm also studying the Mike Myers book, All In One Exam Guide CompTIA+ Certification, 8th Edition. Using both interchangeably is helping me really grasp the material.

u/Jakomako · 2 pointsr/buildapc

A+ study guides are probably the best text books for learning about computers. I used the Mike Meyers guide somewhat when I took the test: http://www.amazon.com/gp/product/007179512X/ref=pd_lpo_sbs_dp_ss_1?pf_rd_p=1535523722&pf_rd_s=lpo-top-stripe-1&pf_rd_t=201&pf_rd_i=0782142435&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=1H8DP0ZA3TBNDB81D5FG

Should be available at your local library.

It covers a hell of a lot more than just PC hardware though. Networking, windows, mobile devices, printers, etc.

u/quest049 · 2 pointsr/IWantToLearn

Hey man, I took the A + recently. There is some awesome study material online.

For studying material I used the following:
http://www.amazon.com/gp/aw/d/007179512X/ref=pd_aw_sims_2?pi=SL500_SY115&simLd=1

http://m.youtube.com/playlist?list=PLG49S3nxzAnnmMVTdd4v4ryJ7_qoQCrF4

http://m.youtube.com/playlist?list=PLG49S3nxzAnlfszEOQ-Ih03S6MsnZLd6k

For practice exams I used the free ones in Mike Myers book and the following sites.

http://m.crucialexams.com/exams/a+/

http://www.examcompass.com/comptia-a-plus-practice-test-1-exam-220-801


Also look at the comptia subreddit, you can get some good advice on studying for simulation questions.

u/GaloisField · 2 pointsr/linuxquestions

See how you feel about this one: UNIX and Linux System Administration Handbook (5th Edition)

​

Otherwise, you little cannot go wrong with O'Reilly's "In a Nutshell" books.

u/z-oid · 2 pointsr/linux4noobs

Not exactly what you want to hear, but the best way to learn the shell is by doing. Reading can give you a good base knowledge, but application is key.

This is by far the best way I've found to learn Linux quickly. Install Linux onto a extra computer, dual boot, or pick up a raspberry pi. Try things out, when you can't figure something out look it up. If you still can't find the answer head over to #linux on freenode. (Or Distro specific channels like #fedora #ubuntu etc.)

HOWEVER! I DO have a phenomenal book suggestion for you.
https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554

u/OdinTheHugger · 2 pointsr/sysadmin

Advice to noobies:

  • If you're the book learning type buy this book
    I use it myself all the time as a reference if nothing else.

  • If you're the experience learning type stand up a series of VMs, and test out whatever tools you expect to be working with.

  • Learn the bare basics of ansible, the command line tool, or even just ssh-agent, it'll help a lot when managing multiple servers/instances

    What I wish someone had told me:

  • Unless the environment has EXCELLENT documentation going in, don't blindly trust ANYTHING. Be prepared to audit your servers and be sure to note down any interesting running services, if you don't know what they are or how they work, that's your homework.

    explaination: I ran into a job where the manager believed things worked in a specific way, with specific servers handling specific things, but no substantial documentation... During my time there I personally found more than 60 VMs and 4-5 physical servers that no one but the previous sysadmin had known about.

    Turns out most of those servers and VMs were a combination of things vital to business processes, but a very small handful of them were very creative attempts at establishing a backdoor into company systems, or 'temporary workarounds' that had become production critical services without proper authentication.

  • Other than that, be prepared to google. Every environment is different, within the open source and Linux communities there are 100s of ways to solve any particular problem, each with tradeoffs and requirements, it may seem daunting but if you're smart enough to ask for advice before starting the job? You'll be just fine.

  • https://stackoverflow.com/a/137173 This is a simple script that displays all user's cron jobs, this will absolutely come in handy, run it against all servers under your purview to find out if there's any hidden magic at work.
u/warpigg · 2 pointsr/sysadmin

Best book IMO that will get you everything start and finish in Linux AND be a great future reference:

UNIX and Linux System Administration Handbook (get the latest edition - I think its 5th ed)

Also I like the Linux Foundation certs - same folks that employ Linus. They are very good (read: hard as RH certs) now and allow you to take Ubuntu or RH as distro to take the exam in . Plus cheaper and free retake. Linux Foundation

HOwever best practice is to work with it over and over practice building/installing web servers, databases , mail servers, docker etc etc. Learn vi, learn to search on command line, bash etc.

u/dmbuddy · 2 pointsr/linuxadmin

I really enjoyed both of these books when I was starting out. Even now they are super helpful. https://www.amazon.com/gp/aw/d/0134277554/ref=dp_ob_neva_mobile

https://www.amazon.com/gp/aw/d/1491927577/ref=dp_ob_neva_mobile

If you don’t know Linux at all the 2nd book gives you a good overview of things.

u/APimpNamedAPimpNamed · 2 pointsr/philosophy

My friend, I believe you hold the same misguided conception(s) that I did a very short time ago. Please give the following book a read (or listen!).

http://www.amazon.com/Superintelligence-Dangers-Strategies-Nick-Bostrom/dp/0199678111

u/philmethod · 2 pointsr/IAmA

TBO I think a lot about the dangers and promises of ever more capable technology quite a lot. In my view, if it turns out reasonably well it will probably stretch over many decades...

If it turns out badly though, it could be an event, not a sudden event of infinitely increasing technology, but an event of the technological capability we have build up over decades and centuries, suddenly turning against us.

Things can change suddenly and unexpectedly, in 1914 a month before world war I everyone thought that all the great powers of Europe had settled into a stable though somewhat tense modus vivendi. A month later the world was turned on it's head.

Have you read Bostrom's book superintelligence?
https://www.amazon.co.uk/Superintelligence-Dangers-Strategies-Nick-Bostrom/dp/0199678111

There are certain subtle disagreements that I have with his analysis, but I think a lot of what he says about the nature of agents and intelligence in general is valid. Agents generally have goals, if a general agent with a specific set of goals comes across another agent with an incompatible set of goals that blocks its goals that first agent will be inclined to incapacitate or eliminate the blocking agent.

This means if we don't like what a computer is doing maybe because we programmed in the wrong goals and try to stop it, the AI may in turn try to stop us stopping it. If it has an off switch it may strategize to prevent us from reaching it.

In otherwords the same dynamics that cause human beings to wage war with each other (incompatible conflicting goals) could cause a war between humans and AI, far from being a fantasy there are logical reasons to consider it to be a possibility.

In the same way while nations are helping each other there is peace but then when one nation turns on another, the situation escalates all hell breaks loose,you could have a situation where an AI is quietly pursuing its goals and doesn't perceive humanity as an impediment and then suddenly we decide we don't like what the AI is doing, we feel its hogging resources that could be used better in other ways and try to stop the AI. The AI then changes its perception of humanity from an unimportant part of its environment to an impediment to its goals and then turns its vast intelligence to the concern of eliminating us... the equivalent of war.

Some kinds of intelligence could be thought of as a measure of ones ability to think of strategies to get things done. If a vastly higher intelligence and a much lower intelligent have mutually incompatible goals, the higher intelligence will achieve all its goals at the expense of any goals the lower intelligence had that were incompatible with the goals of the higher intelligence.

In otherwords in a war between us and superintelligent AI we might well lose. This is speculation, but quite plausible and logical speculation.


Not sure what you mean by "inevitability based on current trends is never, never, never a good prediction"kind of a very strong positive (inevitability) and negative (never, never, never) juxtaposition.



Current trends continue until they stop. Sometimes projecting current trends is very accurate indeed (viewscreens in startrek-skype today) other times its not (man on the moon - warp drive)


In my view typically past projections of futures where energy is exponentially plentiful and all sorts of vastly wasteful uses of energy are common place (flying cars, hover boards, starships) typically have not come to pass.

But projections of technology becoming everymore precise and fiddly and complex (genetic engineering, electron microscopes, computers, 3D printers etc.) have. I have confidence in the tendency of the precision of manufacturing to continue to increase. And there are plenty of technologies on the horizon, 3D chips, parrallel processing, D-wave quantum computers etc.

...I think it's fair to say that we are far from the physical limit of computing power. The very existence of the human brain implies that an arrangement of atoms with the computing power of the human mind is possible.

In fact there's basically two alternatives to AI surpassing all our capabilities:

  1. Civilization collapses (a war, peak fossil fuels, meteor strike) which I grant you is not beyond the pale of possibilities.

  2. We choose not to design computers to be that smart, because of the potential danger it would pose. And again this is not beyond the pale of possibility, the fate of nuclear technology is a precedent for this as a powerful technology that has actually regressed in many ways due to being regulated out of existence.

    So no it's not inevitable that machines will overtake us universally in capability, but it's sufficiently plausible (I would say probable) to merit considerable thought especially since there will at least be the challenge of mass unemployment.

    BTW I don't think it's likely I'll live forever or get uploaded into a computer either. In my view the task of building an intelligence capable of obliterating humanity is far simpler than the task of making human beings immortal or of transferring human consciousness onto a computer...which might be fundamentally impossible.
u/Bywater · 2 pointsr/JoeRogan

It was pretty good. I also read another one recently that had some AI named flutter in it, where the first AI is a matchmaking social media construct. It was equal parts terrifying and funny at least. But for the life of me I can't remember the fucking name of it.

u/Titsout4theboiz · 2 pointsr/IAmA

Superintellegence- by Nick Bostrom http://www.amazon.com/Superintelligence-Dangers-Strategies-Nick-Bostrom/dp/0199678111

Currently working through it, very well written and scientifically backed. Elon tweeted about it himself.

u/rodolfotheinsaaane · 2 pointsr/singularity

He is mostly referring to 'Superintelligence' by Nick Bostrom, in which the author lays out all the possible scenarios of how an AI could evolve and how we could contain it, and most of the time humanity ends up being fucked.

u/squishlefunke · 2 pointsr/technology

It was actually a Musk tweet that led me to read Bostrom's book Superintelligence: Paths, Dangers, Strategies. Worth a look.

u/RobinSinger · 2 pointsr/elonmusk

He seems to have gotten the idea from Nick Bostrom's Superintelligence: Paths, Dangers, Strategies, which he read recently (Twitter link).

u/Ignate · 2 pointsr/Futurology

Superintelligence

Good book.

I think of the human mind as a very specific intelligence designed to meet the demands of a natural life. A tailor made intelligence that is ultra specific seems like an incredibly difficult thing to recreate. I wouldn't be surprised if after AGI was created, it proved that our brains are both works of art, and only useful in specific areas.

They say a Philosopher is comparable to a dog standing on it's hind legs and trying to walk. Our brains are not setup to think about big problems and big solutions. Our brains are very specific. So, certainly, we shouldn't be using it as a model to build AGI.

As far as self awareness, I don't think we understand what that is. I think the seed AI's we have are already self-aware. They just have a very basic drive which is entirely reactionary. We input, it outputs.

It's not that if we connect enough dot's it'll suddenly come alive like Pinocchio. More, it will gradually wake up the more complex the overall program becomes.

u/bluehands · 2 pointsr/Futurology

There are huge swaths of the AI community that think this could be a real issue. A recent book goes on about how this could be an issue and what we maybe able to do about it.

All technology has dangers contain within it but AI is one of the most credible that could take us out as a species beyond our control.

u/BullockHouse · 2 pointsr/bestof

That's what I always thought was neat about CNN's - over the last fiveish years, they've shown that they can beat specialized models with decades of hard work and fine-tuning behind them in a wide variety of domains (including speech recognition and image processing). Humans just aren't good at hand-building signal analysis systems. I expect that trend to continue as we get better at leveraging the power of deep neural networks. The remaining applications for non-NN AI will be when you have a very simple problem you need to solve (like, say, image segmentation or simple feature detection), and are heavily constrained by latency or performance.

Anyways, it's a very exciting time to be alive! Both because the technology is incredibly cool, and because it might eventually kill us all.

u/browwiw · 2 pointsr/HaloStory

I'm currently listening to the audio book of Nick Bostrom's Superintelligence: Paths, Dangers, Strategies, so I'm kind of hyped on AI and their possible existential threat, right now. The Halo writers are greatly downplaying what is possible for a powerful superintelligence can do. Once in control of the Domain, and properly bootstrapped to godhood, Cortana wouldn't have need for the Guardians or any of the Promethean's infrastructure. She could just start converting matter into computronium or something even more exotic. Of course, that's way too un-fun and not adventure sci-fi. If the Halo writers wanted to combine Halo-lore with contemporary conjecture on AI doomsdays, Cortana should have started mass producing Composer platforms to convert all sentient life in the known galaxy into info-life and importing them all into the Domain where they can live in a never ending Utopia...on her terms, of course. Using ancient warships to enforce martial law is just too crude. The Guardians are a decisive strategic advantage, but just not nearly what a superintelligence can get away with.

Also, I'd like to note that according to real world AI theory, the Smart AI of Halo are not "true" AI. They are Emulated Minds, ie, their core architecture is based on high resolution scanning of human brains that is emulated via powerful software. I know that this is common knowledge amongst us, but I find it interesting that RL researchers do make a distinction between artificial machine intelligence and theoretical Full Mind Emulation.

u/CWRules · 2 pointsr/blackmirror

> The truth is that the singularity could be reached but never realized as long as you don't connect that super-smart AI to anything.

A super-intelligent AI could probably convince a human to let it out of its confinement (Google The AI-Box Experiment for an exploration of this), but even failing that it might think of a way to break free that we can't even conceive of. Even if we literally didn't connect it to anything, that leaves us with no way to interact with it, so what was the point of developing it?

The reason I say human-based AI is less risky is because it would implicitly have human values. It wouldn't kill all humans so that we can't stop it from turning the planet into paperclips. Designing a friendly AI from scratch basically requires us to express human ethics in a way a computer can understand, which is not even close to a solved problem.

Nick Bostrom's Superintelligence is a pretty good exploration of the dangers of AI if you're interested in the subject, but it's a fairly difficult read. Tim Urban's articles on the subject are simpler, if much less in-depth.

u/siedler084 · 2 pointsr/learnprogramming

Heres something from an older reddit thread asked in /r/ruby and it suggest the book The Little Schemer to help you think recursive, if you got that down I guess writing your own recursive code is less of a struggle, I cannot however tell you how good that book is, so you should do some research on that yourself.

u/paultypes · 2 pointsr/programming

FWIW, the "applicative order Y-combinator" is the punchline of The Little Schemer, which I highly recommend.

Most explanations of it describe it as "how you do recursion without names," which is a good enough operational description, I guess. What it really is, historically, is the proof of Curry's paradox, a simplification of a proof that was originally arrived at by Alonzo Church's grad students, Stephen Kleene and John Rosser, as a demonstration that the untyped lambda calculus is logically inconsistent.

In other words, its significance isn't as a tool for implementing general recursion. Its significance is as a proof that the untyped lambda calculus isn't useful for what it was originally intended (i.e. use as a formal logic), and motivates the introduction of type theory in logic and computer science.

u/ryanklee · 2 pointsr/learnprogramming

The Little Schemer. After you read that book, in addition to having had a car load of fun, you'll be pretty good with recursion, which is all that book basically teaches. It's pretty slim, around 100 pages IIRC. You could knock it out in under two weeks if you worked at it. Man, I love that book.

u/justsomebuddypal · 2 pointsr/learnprogramming

Program anything. The choice of IDE (JCreator) isn't very important. Try debugging a program if you've never done that. If you're on *nix, check out GDB and valgrind.

Your profs have probably set up the course structure for 4 years to work a certain way. Some where down that road (2nd semester for me after AP comp sci) I had to take Programming Languages and we used Scheme. Functional programming feels entirely different from imperative. I would suggest buying a copy of The Little Schemer. It is one of the few programming books I'll probably keep forever, and it doesn't break the bank. It will also open your mind in CS.

u/fnord123 · 2 pointsr/programming

Many others have answered this sufficiently but as it's your gf taking the course I thought I would chime in to suggest picking up The Little Schemer which is a cute book for informally learning the language and you will pick up cute-points.

u/solid7 · 2 pointsr/learnprogramming

The little schemer and later, The seasoned schemer have my highest recommendation.

u/burke · 2 pointsr/IWantToLearn
u/ccc123ccc · 2 pointsr/programming

The Little Schemer

This book is a great tutorial for "programming" in lisp just by reading the book. You can learn "lisp as a concept" more than lisp for work.

u/19Kilo · 2 pointsr/Dallas

Honestly, apply for everything. Shoot for those two and help desk. You can sort of get in the door with call center work, but let's call that a last ditch effort.


For learning about the field, Network Warrior is pretty much the bible of generalized network "stuff". It's fairly vendor independent and covers a lot of things that are off the beaten path (load balancers and such).

Cisco's CCENT book and the above one will supplement each other well.

I can't really speak to the server side these days. I've been over in Networking for a while...

u/21brandon021 · 2 pointsr/networking

I know this book is fairly often recommended by r/networking. It's one thing to know what an IP address is. It's another to understand what an IP address is. Honestly what helps me learn is practice and experience. Sure I can read and learn about access lists and Vlan's all I want, but until I first started working with them, I really didn't understand what they were for.

My suggestion, get that book, or any other that you think might help you understand the basics. Learn the OSI model. Then practice, practice, practice. Download Cisco Packet Tracer or GNS3. Watch tutorials on them. Then start setting up and playing with your test network. Finally, start working towards CCNA topics.

All my personal opinion of course.

u/qev · 2 pointsr/networking

I usually see Network Warrior pop up in threads like this, figured I'd bring it up since I don't see it yet. Network Warrior

u/FriendlyDespot · 2 pointsr/networking

I'd start at the Secret Shop and build a Perseverance.

Joking aside, if you already have an understanding of the basics, then Network Warrior By Gary Donahue is a great place to start. It's a little dated in some parts, but it'll help you not only get back on track with fundamental knowledge, but also help you with all of the practical details that you need to do networking in the real world. It's sort of Cisco focused, but has plenty of general content that'll help you out on any network.

u/youngeng · 2 pointsr/networking

The Network Warrior book may be what you're looking for. It's a bit old, yes, but still useful.

u/allitode · 2 pointsr/networking

Network Warrior is a great guide. Packet pushers has a wealth of knowledge (be sure to check out the other feeds they have, e.g., Healthy Paranoia) in their archives covering all sorts of networking things. TWIET is solid and much more sysadmin focused.

u/ekim4ds · 2 pointsr/networking

I as well went to school for Network Engineering and am working Entry-Level networking now. These are the books that have helped me so far.

Network Warrior

Network+

CCNA Library

TCP/IP Illustrated

I've read a few others, but these were my favorite ones. The Network+ book helped me obtain my Network+ Cert, then the CCNA Library helped me obtain my CCENT and CCNA. Great Books!

I would only recommend that Netowork+ book though if you plan on getting into Cisco stuff because the author is a Cisco guy and tends to start rambling about Cisco technologies that you will learn for the CCNA.

u/CodeTed · 2 pointsr/gamedev

So Game Engine Architecture looks pretty good, although it looks like it is for 3d game programming. Is there something like that, but for 2d game programming?

https://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010/ref=dp_ob_title_bk

u/w00tnes · 2 pointsr/learnprogramming

Maybe this book might help you with the essentials: http://www.amazon.com/Game-Engine-Architecture-Second-Edition/dp/1466560010

u/TheBestOpinion · 2 pointsr/gamedev

>Game Engine Architecture, vol 2

Fuuuck that's a pricey book

u/overlysound · 2 pointsr/gamedev

I agree with your sentiments that game programming in Rust is new, so it may slow me down. But I' am in no rush to put out a game. I'd be very interested in really getting to know how game engines work; even bought a book. I' am also interested in learning Rust for its potential utility in my job anyway.

u/8a7e17035d · 2 pointsr/learnprogramming

What kind of games? Mobile games? Browser games? Desktop/console games?

If you're into building games entirely from the scratch and have it run on desktops and mobile devices, I'd suggest trying out the SFML framework (C++). They have some nice tutorials on their GitHub Wiki

Keep in mind that those are just the basics. If you prefer some more comprehensive literature, I'd recommend the following books:
Game Coding Complete
Game Programming Patterns
Game Engine Architecture

u/ThePopil · 2 pointsr/UofT

Hey! I'm doing the game design focus and have / am working at some indie studios.

The focus isn't nearly enough to get a job in the industry, you need to teach yourself a lot more.

  • Figure out how much dev work you want to do and how much design you want to do. There are positions that are mixtures of both.

  • You can do a one year course in design at some college after you graduate if it interests you. BE WARNED, no one cares about the degree, every design lead I've worked with has said this. This is about connections and making your own projects.

  • If you want to do dev, read this book: https://www.amazon.ca/Engine-Architecture-Second-Jason-Gregory/dp/1466560010. It's like the bible for game dev.

  • Triple A studios all use their own engine which is 99% of the time written in C++ so being familiar in that is a must

  • Make your own games! Use Unity or Unreal cause it's so much faster to iterate on and prototype stuff. Building your own engine is great for learning, but don't make games from scratch cause it's a lot of pointless grunt work.

  • Get involved in the community! Seriously this is often overlooked but just working with people of similar interests can be great for experience and connections. Toronto has a huge indie game dev scene.
u/3131961357 · 2 pointsr/gamedev

Books. Game Engine Architecture, for example.

u/Dooskington · 2 pointsr/gamedev

Read books, read through repos on github, and most importantly: write your own!

I recommend Game Engine Architecture if you want a very broad but extremely useful reference guide.

u/echelonIV · 2 pointsr/gamedev

I ordered these for our company library, based on recommendations for/from other programmers (of all levels).

ISBN | Title
---|---
978-1568814247 | Real-time Rendering
0321486811 | Compilers: Principles, Techniques, and Tools (2nd Edition)
1482250926 or 0123742978 | Essential Mathematics for Games and Interactive Applications, Third Edition 3rd Edition
978-1482264616 | GPU Pro 6: Advanced Rendering Techniques
1466560010 | Game Engine Architecture, Second Edition
978-1482243567 | Multithreading for Visual Effects
978-0123750792 | Physically Based Rendering: From Theory To Implementation

u/Causeless · 2 pointsr/pcgaming

Consoles and PCs are more alike than ever, but it's still not close enough. For example, the unified memory architecture (with the onion and garlic buses) means that somebody programming on PC versus Xbone/PS4 means that they need to think differently.

> They are also on the same x86 Architecture as modern PC Gaming has been.

100% irrelevant and shows you don't really know what a programmer is doing when they are writing code. We don't use assembly language any more.

Source: I do programming and have read this (brilliant!) book: http://www.amazon.co.uk/Game-Engine-Architecture-Second-Edition/dp/1466560010

u/SunyiNyufi · 2 pointsr/GirlGamers

So as some of the others: I'm not from the gaming industry either (though I plan to make games on the side). And an other disclaimer: I'm over 30.

Let me just say most people in their 20s don't know what they would like to do, and even if they do, your interest will change over time, so just try to say flexible and don't fear making a switch if you are unhappy, of course within reason and financial security.

I recently switched from my regular office job to a less regular one in software development. My official background in software dev before was: none. I picked up coding like a year ago or so, because a C# course for game development was super cheap on Udemy (and by super cheap I mean like 10 or 15 USD), and continued learning coding ever since. Though I was a privileged candidate for my current job, because it was an internal hire, I basically got it by showing them what I can do. And we don't even code in C# in my new role lol

So my point is: learning doesn't have to be expensive, while some jobs require a specialized college degree a lot companies nowadays are more interested in whether or not you can do the job.

Also there are some Game Music courses on Udemy as well, though they might be too basic for you, still worth to check out imho :)

If you are interested in game design I would recommend this book too The Art of Game Design: A Book of Lenses https://www.amazon.de/dp/1466598646/ref=cm_sw_r_cp_apa_i_nay4AbC7P2BFB

u/komoro · 2 pointsr/gamedev

Well for game design, I cannot overstate the impact that the book The Art of Game Design has. It lists where to start building a game, how to find mechanics, how to deal with chance and map building, what the players expect, how to engage the player, how to use audio correctly and many many more. Go check it out, if you are already familiar with programming, the more the better. But to be a great game designer takes much more - and a lot of it can be found in the book.

Happy creating :)

u/swordrush · 2 pointsr/TheSilphRoad

You're telling me (I design board games as one of my hobbies, read up on game design, talk about game design with other people designing games, etc). It seems very apparent to me you'd want to hire people specifically for game design aspects. But it's not always completely apparent to everybody. Also, Niantic starting out may not have had the funding available to dedicate somebody to focus on game design.

u/Eldakan · 2 pointsr/GameDevelopment

Technology: What technology are you using to create your game, mostly which engine... Where I read about these four aspects it was reffering to all kinds of games (Which would include card and board games as technology)


Story: The lore, history and narrative told in your game


Mechanics: What are you able to do in a game; e.g: Jump, Dash (for jump an runs) or block and hit (fighting game)


Aesthetics: What makes the game correspond to the players senses: music, visuals, light, shaders etc


Hope that helps (Source: https://www.amazon.de/Art-Game-Design-Book-Lenses/dp/1466598646 )

u/kevodoom · 2 pointsr/IAmA

My recommendation for this would be twofold: Grab an Unreal 4 subscription and burrow through the ever-increasing collection of tutorials there. You'll learn the nuts and bolts of level development using the same tool the professionals use. To develop your design skills, there are three books I'd recommend you read, in this order: Raph Koster's A Theory of Fun, Jesse Schell's The Art of Game Design, and Katie Salen and Eric Zimmerman's Rules of Play.

Following these two tracks of learning the practical elements of game development along with the theory of why game design works the way it does will get you started on a good footing.

u/Wh0_The_Fuck_Cares · 2 pointsr/gamedesign

A lot of people have already talked about going to university for computer science, design, etc... but make sure you're also reading (The Art of Game Design), watching video series (Brackeys), and try participating in clubs or local meetup groups to get to know the industry and get your name out there.

u/alttoafault · 2 pointsr/gamedev

Well it sounds like its time to start prototyping and analyzing what does and doesn't meet your documents/requirements. Getting these out should motivate your team and make you feel a bit more confident in what to do next.

As far as looking for resources, there are quite a few out there. I really recommend checking out The Art of Game Design by Jesse Schell, it's one of the most practical books on game design (a lot like Raph Koster's are way more theoretical). I'd also check out gamasutra for a great design-focused community, there's a lot of resources there that can help you out.

Also, don't worry if everything falls apart. Game design is a lot of work and people can tend to be pretty flaky about it. That's why I've tried to learn every aspect of development so I don't have to depend on others.

u/PukeOfEarl · 2 pointsr/tabletopgamedesign

I highly recommend Jesse Schell's The Art of Game Design: A Book of Lenses. It's primarily focused on videogame design, but the topics are broad enough that most are applicable to boardgame design.

u/OvertechB · 2 pointsr/Unity2D

A lot of the balancing comes from play testing with actual players and a basic understanding of probability math.

Randomness in games can often be a fun addition because it leads to surprises and can make a boring game more interesting. But you also want to use with caution because you want your players to still feel like they are in control. Too much RNG can make people feel that the game is unfair.

Pre-built maps are good if you want people to be able to master them, and generated maps are good if you want people to think on their feet every time. Pre-built can make things predictable, whereas generated can add replayability.

As for symmetrical maps, do you mean both players start with an even playing field? If so, that's ideal for balance. If you do intend to give one player a map advantage, you'd have to properly balance the other player to have some other advantage. Imagine playing golf. The player at a disadvantage might be granted a handicap. The important thing is that both players must feel like they are treated fairly.

Edit: If you're really interested, I'd recommend The Art of Game Design by Jesse Schell. There's 2 excellent chapters in there about game balance that details probability math, good design, and player psychology when dealing with balancing.

u/RaunchySlappy · 2 pointsr/boardgames

Thanks for the great question! I'll answer the way my mother always answer my long emails...

  • Background? My background is in actually more on the visual creative side rather than the game design side! I graduated from the Massachusetts College of Art and Design with a degree in Illustration. My thesis project was to create and illustrate an entire game on my own ("Landfall" mentioned in a couple other places in this thread). Of course I ended up focusing on (and enjoying more) designing the gameplay and player experience aspects of the game.
  • Motivation? I really just want to design games and have people play them! If I'm lucky I'll break even on this project, haha. I've tried to keep everything as minimal and efficient as possible, to get the game to the people is my only real intent. It is incredibly satisfying when demoing the game to watch people truly enjoying something I've poured my blood, sweat, and tears into.
  • What resources did you seek/find? I am lucky enough to have a fantastic day job to afford to keep the lights on (and the 3D printer running), and have done lots, and lots, and lots, and loooots of research. The thing they don't tell you is that when you want to get your game published through KS, its like getting a third whole new job (in addition to my day job and my board game design job). It is so in depth you can practically major in crowdfunding. I read a ton of stuff from Jamey Stegmaier, have been reading this book andthis book, and have done lots and lots of trial and error.
  • Which resources were most helpful to you? Probably the 3D printer was one of my best investments as a tabletop game designer. It reaaaaally helps immerse the player (and myself) in the game I am creating if I can basically instantly create whatever components I want. (I purchased this affordable 3D printer and have had great success with it)
  • What approach worked for you personally, and how is it different from other boardgame designers? This is a really good question. Board game designing isn't typically something that becomes someone's full time job. Each person who has made the leap usually starts somewhere vastly different from game designing, and I believe that gives each designer a very unique perspective to their games and the way they go about creating them. For me, those things are mostly visually creative-related. At work I do illustration, graphic design, photography, videography, video editing etc etc. So making a decent looking prototype is something that I was able to do (mostly) on my own, and similarly making a nice game trailer and digital ads was relatively easy for me. While I had the visual components down, I differ from other designers who have different characteristics that they bring into play like business experience, industry contacts, an in depth understanding of Kickstarter (I am pretty familiar with KS, have backed a few things, but I am by no means a superbacker myself).
  • The biggest challenge you are proud to have overcome? Even though my campaign isn't at its goal just yet, I am proud at the amount of people I have been able to spark some interest and connection with through my game when starting basically from scratch. They say to have a successful campaign you need to have at least 10,000 emails when you launch, I had about 150 (I lucked out when my game trailer ended up blowing up on Reddit about a week before launch). It was very hot in that pigeon suit I wore for 4 days straight at PAX East promoting Crumbs, and it was exhausting taking a 5 day trip to NYC and demoing the game every day, but it was so worth it. This is my first game, and for someone starting with a near zero fanbase, I am proud my game has been able to touch this many people to begin with.
u/corpsmoderne · 2 pointsr/learnprogramming

It seems you're not lacking skills on the technical side, if you want to make games on you own, you may want to gain skills on the game-design side. This is the must-have : http://www.amazon.com/The-Art-Game-Design-Edition/dp/1466598646/ref=dp_ob_title_bk

And another must have : http://www.theoryoffun.com/

u/MinMacAttack · 2 pointsr/leveldesign

Buying him computer hardware might be nice, but there's a lot of other ways to give something related to games and game design.

There's always a great big pound of dice. It's full of dice of assorted numbers of sides, and a game designer remotely interested in tabletop (which should be all of them) can use a healthy supply of dice for making tabletop games. There's always the fun of just rolling dice giant handfuls of dice. I'm out right now but I'll add the link when I get back home. Here's the link: Pound of dice

I'd also look into games he hasn't tried. BoardGameGeek has a lot of board games listed and reviewed that you could get, and of course there's always steam. For board games I'd recommend:

  • Red Dragon Inn, a fun party game for 2-4 that's best with 3+. You play as a bunch of adventurers after big dungeon raid and now they're spending gold at their local tavern and gambling. Can support more players with its sequels.
  • Monopoly Deal: A card game version of Monopoly, without the bullshit. Unlike it's big board game cousin, it actually plays out fairly quickly while still being focused on building monopolies to win the game. As a game player perspective it's a fun game, but also from a game designer's perspective it's interesting to see how this game re-imagines the original board game while being true to the source material and streamlining many of its game mechanics.
  • Carcassonne: A well known classic game that works well with 2-5 players where players build up a world of castles, farmland, and roads.
  • Bang the Dice Game: A game where the sheriff and his deputies face off against the outlaws but nobody knows who to shoot. At the start of the game players are given their roles in the conflict but only the sheriff shows who they are. The rest of the game involves social deduction to try to figure who everyone is supposed to be shooting, and trying to read past bluffs. The game works great for 5-8 players, and can work for 3-8.

    There's also a lot of books on game design you can get him. You may have to check to see if he owns some of these already, but I've found them to be great reads that I can recommend to anyone interested in game design.

  • Blood, Sweat, and Pixels: This is a book that tells "The Triumphant, turbulent stories behind how video games are made" and talks about the stories behind 10 different games from across the video game industry and what went on during development. I just bought this one and haven't gotten to chance to read it yet, but I'm excited to start it soon.
  • The Art of Game Design: This is one of the most well known books on game design that discusses a lot of what makes games work. I recommend it to anyone interested in game design.
  • Game Design Workshop: A Playcentric Approach to Creating Innovative Games: This book talks about everything that goes into how to design a game and some key differences on how some types of games work. It's more on the beginner/intermediate side, so some of it might be familiar to him.
u/Danwarr · 2 pointsr/BoardgameDesign

Ok, but why should somebody work with you if you've barely done any work on your own idea? Like /u/Bastiaan-Squared mentioned, most people are more excited to work on their own ideas, which they are constantly prototyping, refining, reworking etc, than to help you sit down and decide what mechanisms might work well in whatever setting you think is cool. You're better off spending your own time hammering out some potential mechanisms you might find interesting then approaching somebody and refining what you've done.


Here are a couple books that might help you out:

u/GeoKureli · 2 pointsr/gamedev

The Art of Game Design is a fantastic book focused on exposing all of the different ways to look at game design and all the different options and approaches you can explore. I highly recommend it.

As for me, I look at why a core mechanic works in an existing game break it down into the most abstract components. Like Punchout is about learning timing and sequence recognition. Reacting quickly to an enemy's "tell" makes me feel powerful, and not knowing the "tell" makes me want to explore and try things out and challenge my intuition. So apply it to something else, what else requires reflexes and discovering enemy patterns? I unno... Ping pong? Ping pong requires finess and I want a discreet Turing nature to the success of my volleys, can I simplify the controls? What about that game where I put my hand on top of yours and you have to slap my hand before I pull them away? Whack-a-mole requires reflex but the pattern is random, can I change that?

Just break down games into the smallest components and know that that is something that can be explored and try mixing things up

u/Kyubinin · 2 pointsr/gamedev

I just finished The Art of Game Design: A Book of Lenses by Jesse Schell and thought it was super insightful!

u/kangasking · 2 pointsr/programming

which books exactly, please guide me.

these ones?

Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)

Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14 1st Edition

More Effective C++: 35 New Ways to Improve Your Programs and Designs 1st Edition

What is the difference between them? It seems effective cpp 3 is from 2005 and more effective cpp is from 1996. Is there a point in reading more effective cpp after reading the third edition of effective cpp?

Also, what do you think about C++ How to Program?

u/OmegaNaughtEquals1 · 2 pointsr/cpp_questions

Stephan T Lavavej is the Standard Template Library (STL) maintainer for Visual C++ at Microsoft. He put together an excellent series on Core C++ that describes all of the essential elements of C++. However, that series does not cover "modern" C++ (C++11/14/17). For that, I strongly recommend Scott Meyers Modern Effective C++ from the Definitive List of books.

As a personal note, please keep in mind that C++ is not C. The structure of programs is fundamentally different. You want to forget everything you know about manually allocating memory, using global variables, passing parameters by pointer (C++ has references). Learn to love const. And, above nearly all else, use the STL. If you have questions, don't be afraid to post them here!

u/kindkitsune · 2 pointsr/cpp

I think C++ Primer is nice, and I still keep it around at work as its a useful reference to have. Being able to open up to a section about a topic and know I'll find some reference info, example code, and some good exposition is great. It covers C++11 fairly well, too. Make sure to get the most recent edition. The book does a nice job of providing a decent amount of example code, and the included exercises are very useful.

Effective Modern C++ is great, once you have a bit more experience under your belt. I pull this one out all the time to take a quick look through it when I question how I'm using some feature, and the paradigms of "Modern C++" in general are just great to follow and fun to use.

The C++ Programming Language is a reference guide: its good for more advanced programmers who want a quick reference guide that also has a bit of exposition on various concepts/features (beyond what can be found on cppreference). I still don't think it would be well suited to you- it lacks the example code and useful exercises of the C++ Primer.

As you probably well know though, the best way to learn a programming language is to write in the language. Books are good for making sure you don't do outright "bad" things at first, and in that case I'd definitely recommend the C++ Primer. I had the problem of following online sites for my first C++ experiements, and these sites never used or mentioned any of the wonderful things C++ offers like the algorithm library (learn to love everything that offers!) or even something as basic as std::vector! Instead, I was using lots of raw calls to new and delete and doing other suboptimal things.

So, I'd say go with C++ Primer to start. Follow along like you would with a maths textbook and do the example problems, and transcribe and run much of the example code yourself.

Effective C++ would be next, to help you brush up on using various features of Modern C++ and better understanding small but vital details like constexpr and move semantics.

I started learning C++ in August of this year, so I still remember a lot of what it was like to start. Feel free to ask me more if you have any questions about other materials, websites, or resources.

u/cleroth · 2 pointsr/cpp

Scott Meyers has got some decent books. The latest one, Effective Modern C++ should be a great start to begin properly using the newer C++11/14.

u/jj2parkie · 2 pointsr/manga

Probably. It might take some refractoring, but you would need a SaaS like Parse to handle the cross platform sync. I never tried Parse, but I don't want to since it costs money after a certain quota. I've heard some horror stories of independent developers messing up their Parse and blowing through their quota as they failed to put a kill-switch.

Same. I started this project around November to learn Android development. I have a year off before I start college, so I thought of learning some software development. My only experience at the time was high school computer science using C#, so even if you are learning you can contribute. :) Even if it's intimidating you can contribute by submitting issues and such. I contributed to a small database library which was over my head, but I browsed the source to find out how to do something, found an typo in the SQL, and submitted an issue explaining the problem and how to fix it: he forgot a letter.

Although I started learning programming in 2014, if you need any advice on learning Android development, you can PM me. I can provide a list of books you can find online which are helpful for learning Java:

  • Effective Java

  • Advanced Topics in Java

  • Clean Code

  • Design Patterns


    All these books are sectioned such that you only need to read parts you want to, so they are very good references. These books really helped in knowing the syntax of a language and knowing how to use the language which I found was very important for a project of this scale. My first version of it was so hacked together that it was impossible to refractor to add new features. These books really helped for the second version even though I couldn't apply what the books advised effectively.
u/ChrisAAR · 2 pointsr/AskComputerScience

I would recommend reading this book: https://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional-ebook-dp-B000SEIBB8/dp/B000SEIBB8/

Extremely useful concepts to have and understand. I love the use-case the book uses (a portable, rich text editor) as a way to teach you what patterns to use (and not to use). I'm 8+ years in industry and I find coming back to it extremely helpful.

It's my want-to-be-productive-while-on-my-phone go-to book. IMHO definitely more worth it than reading a "coding" book and not having a machine to try it out (I find reading about coding without doing coding to be non-productive, at least for me).

u/Mekire · 2 pointsr/pygame

Well, I pretty much hate it, but if you really wanted to you could pre-plan your projects using UML. You can find some free UML editors online if you look. ArgoUML is okay, but definitely needs improvement (like an undo feature).

Also if you are interested in programming patterns, the canonical text is the GoF book. If you search I'm sure you will be able to find a PDF version of it. There is also a website dedicated to talking about the same book in terms of the application to games:
http://gameprogrammingpatterns.com/contents.html

u/ell0bo · 2 pointsr/PHP

Well, I generally don't buy PHP specific books, so this book doesn't really talk about PHP, however a lot of the design patterns can be transfered over. I thought it was a very good book: Design Patterns: Elements of Reusable Object-Oriented Software

Another one that's not completely about OOP, but is PHP :
Real-World Solutions for Developing High-Quality PHP Frameworks and Applications

u/patroniton · 2 pointsr/AskProgramming

Clean Code can probably help somewhere.

Do you know any Software Design Patterns? They are more of what you are looking for I think. Design Patterns are a way to structure your code so that you don't repeat yourself, keeps code understandable since it follows guidelines from the pattern.

Head First Design Patterns is probably a good place to start with that, and once you understand the basics I would recommend you read the highly recommended Gang of Four (it's nicknamed because of the four authors).

u/JohnKog · 2 pointsr/compsci

A lot of good mentions here. Although they're more programming and engineering than "computer science", I would add Design Patterns by the Gang of Four, and
Programming Pearls by Jon Bentley.

u/barthooper · 2 pointsr/csharp

In the past couple of weeks, I've been reading Design Patterns: Elements of Reusable Object-Oriented Software. If you understand MVC and design patterns in general, it is a good reference. The bulk of the book consists of the design patterns catalog, but there's also a chapter that lays out the reasons for using patterns in broad strokes, as well as a case study involving reasons for applying multiple design patterns in a project.

More than just describing the patterns themselves, some of the book focuses on the interrelationships among different design patterns. As a caveat, it references C++ and Smalltalk in its code samples, but the concepts of structuring objects and their dependencies transcend languages.

u/Nciacrkson · 2 pointsr/iOSProgramming

Really? I've always associated big-4/gang of 4 with this book

u/cyancynic · 2 pointsr/iOSProgramming

I think if you haven't read the GOF Patterns book, and then gone through the Cocoa apis and spent some time "pattern spotting", then you're probably not really a professional grade developer.

When "Patterns" came out, there had never been a systematic approach to describing common software abstractions or how they solve various problems. We call it "software engineering" but it is usually practiced more like software carpentry.

OTOH, mechanical engineers have been able to draw on references like 507 Mechanical Movements since the mid 1800's.

u/DarkCrusader2 · 2 pointsr/Python

Try this. I heard it's quite good. I am going to start this one myself in a couple of weeks.

u/HiRezWeiss · 1 pointr/Smite

Sticking to specific design principles in code is a recipe for pain. It's easier to adapt to pre-existing style in the case of something like UE3 than it is to adapt UE3 to specific design principles. While it's certainly good to be familiar with common patterns (Design Patterns and Code Complete are two of the more common books I see in this regard), being flexible and ready to adapt to a pre-existing code style is going to be infinitely more useful.

In that situation, you're still going to learn more on the job than in school, and that's hard to avoid.

u/programatorprogramer · 1 pointr/serbia
u/Kaiser214 · 1 pointr/webdev

Most people don't have the stomach to read books like this.

u/netherous · 1 pointr/learnprogramming

Not much to go on. Let's try this.

Do you understand the notion of decomposition? A well-organized program will have many functions, each of which does one thing and does it well. The higher level functions will use these as a toolkit to orchestrate more complex tasks. A program organized in such a way is easier to continue adding to even as it grows large.

Let's have an example. You have made the following lower-order functions in a hypothetical game, each of which does exactly what they advertise:

advanceToNextTurn
setPlayerMaxHealth
setPlayerSpriteGraphics
playSoundEffect

These are simple functions. Now let's make a function that uses them as a toolkit to accomplish a larger task. Let's turn the player into a werewolf.

def changePlayerIntoWerewolf():
setPlayerMaxHealth(player.currentHealth * 1.2)
setPlayerSpriteGraphics("sprites/werewolf")
playSoundEffect("audio/werewolf/howl.flac")
if(player.movementPoints < 1.0):
advanceToNextTurn()

Let's make an even higher-order function that uses this one.

def advanceMoonPhase():
if(moon.phase == 0): # full moon
if not player.inWerewolfForm:
changePlayerIntoWerewolf()
else:
if player.inWerewolfForm:
changePlayerIntoHuman()

Regarding your Roguelike - it's pretty simple as it is. I'm not sure what kind of trouble you have with it. A few hundred lines of code in a few files is not a complex program. You might consider rethinking some of the parts in terms of more stringent modelling of the game elements (for instance, shouldn't you have a Map class with all of the map data and information about which Being is standing where? Your movement methods might take the current game Map as an argument).

Books are always nice. Reading code is important, and there are many good books with excellent examples.

u/flavian1 · 1 pointr/sandiego

> I've seen design patterns as a topic mentioned numerous times before; do you have any good recommendations for resources on the topic? Do they tend to be focused on the language used or are they more general concepts?
>

the 'bible' of design patterns is the book by the gang of four: http://www.amazon.com/Design-Patterns-Elements-Object-Oriented-ebook/dp/B000SEIBB8

design patterns are just that...patterns. they're high level strategies to use for particular situations. Look through /r/programming and that should lead to other web resources.

u/CasualFrydays · 1 pointr/ProgrammerHumor

So I mostly taught myself programming, but i have an engineering background. For context, im working now as a game developer. What i found most helpful once i became confident with my actual problem solving skills in programming was learning programming patterns.

For me that came in the form of [this book] (https://www.amazon.ca/dp/0990582906/ref=cm_sw_r_cp_apa_fSt.Bb1A7WQ5E), which is really just a rehash of how the design patterns in this book can be applied to game development.

Basically once you're more familiar with design patterns, you'll be able to build more manageable code, and better understand others who are using the same patterns.

u/dead_pirate_robertz · 1 pointr/csharp

The book is still in its first edition. From the Editorial Review on the Amazon page:

> The CD-ROM works with any Java-enabled browser (Internet Explorer 4.0 and Netscape Communicator 4.0.) It includes the full text of the printed book along with the richness of hypertext links to get the most out of patterns quickly. (Two versions of the text, one for 640 x 480 resolution and one for higher resolutions, are provided.)

It's friggin' old.

Everything else changes continuously in software. It's hard to believe that there aren't a bunch of design patterns that the GoF missed or have been invented since the GoF book was written.

u/jpiascik · 1 pointr/learnprogramming

One of the best books to own on design patterns is the GOF or "Gang of four" book. But be warned, this is not light reading, so I like to keep it for reference and use this site as a faster way to find the pattern I need. It's a less intimidating and more convenient resource for wading into the GOF patterns. SIDENOTE: I'm not a microsoft developer!

u/UmbraVeil · 1 pointr/AskComputerScience

Haven't read it yet, but I believe the "Gang of Four" is somewhat of a standard for learning design patterns.

u/diablo75 · 1 pointr/techsupport

Not really the forum for this question, but I'd say the easiest thing to do is buy this book (or even just borrow it from a library if you can find one, the books Edition (age) probably isn't that important): https://www.amazon.com/CompTIA-Certification-Guide-220-801-220-802/dp/007179512X

Read it.

Sign up at https://home.pearsonvue.com/, schedule an exam at a nearby location. (Probably costs you something like $150). There's practice tests you can find online if you just google them.

Now, granted, I've not taken the A+; I've take Cisco exams. I would imagine the entire thing is you, at a computer, answering multiple choice questions. Most exams go like that. So if you can read and remember and understand that book you can tackle the A+ easily enough.

u/PinkPuff · 1 pointr/CompTIA

Check out the links in the right hand column, especially Prof. Messer's Cert Videos.

As far as books go, I'd pick this up: Mike Meyers CompTIA certification guide.

Also, go to CompTIA's site and grab the 801/802 objectives PDF. Once you've read the Meyers book, or whichever book you decide to pick up, focus in on the objectives.

There are many resources online for free 801/802 testing. Google is your friend.

Finally, I recommend using Quizlet for flashcard-style drilling.

edit: additionally, there are lots of free Android/iOS practice test apps available.

u/DaNPrS · 1 pointr/CompTIA

This is what I used. Meyers and this one are also very popular.

Since you already have that school one, I'd wouldn't worry too much about it though. Though I do recomend a practice book, like this one. And remember that aside from multiple answer questions, there are also a few "labs."

u/c0Re69 · 1 pointr/computertechs
u/singbluesilver95 · 1 pointr/sysadmin

If you are just starting out, begin with A+ (not for the certification, but for the knowledge). Buy this book, get some old desktop PCs, and learn everything about computers. Then, buy the Network+ book by the same author and learn about networking.

This gives you some basic knowledge of computers and networking. From there, try to do what I did, if you like. Just get a basic "office job", and then see if you can either work your way into their IT department, or offer to fix their computers for them.

u/jago81 · 1 pointr/techsupport

For A+, try Professor Messer's site. His videos are an amazing resource. I do a chapter in book study then watch the corresponding video on Messer's site. Works pretty well.

Also try Coursera, they have a lot of classes you can take for FREE from major universities. I am currently waiting on a networking class that starts June 24th. It's a high level class that offers a good amount of knowledge. No degree, but the knowledge is what you will need during interviews. And like u/esmith3498 said, F.R.E.E.!

Professor Messer - This is for 800 exams for a+, he also has training for net + and linux and the like.

Coursera - Use it!

A+ book - I love this book, very thorough.

GOOD LUCK!!! I am in the same boat as you. I am currently trying to get into the field too.

u/b4ux1t3 · 1 pointr/talesfromtechsupport

Yeah man, no problem.

Before I find some specific books, I wanna mention one series that you've definitely heard of: Blank for Dummies. From my experience, if you want to start from no knowledge and work up to an intermediate level of understanding, For Dummies books are great. A lot of experts beg to differ.

But, to be frank, people who are experts in their field are just that: experts in their field. I have friends who are excellent in their fields, but they are terrible teachers. They expect people to pick things up as quicky as they did. We're not all wired that way, and For Dummies books get that.

So, for my first two recommendations, here ya go:

Networking for Dummies

Building Your Own PC for Dummies

Both of those are less than 20 bucks on Amazon, and I'm sure you can find them at a library.

Now, if you really want to get into networking, and you want to get in to the IT field, you should read the A+ and Network+ certification books from Comptia. These will be harder to find in a library, but there will probably be some older editions lying around somewhere. If you know someone who works in the field, they probably have a copy, or can get you a copy, for free or cheap.

These books are more expensive, and more difficult, but they are peerless if you want to jumpstart a career in IT. I'm not going to claim that getting an A+ and/or a Network+ (or a Security+) certification is going to guarantee you a job. However it will definitely help you get your foot in the door.

Other books that you'll want to eventually check out if you want to check out things from O'Reilly. Most of their books are not meant for beginners, but they are the quintessential reference books in the IT field, including computer science, networking, and security. To give you an idea of just how many books they have, check out this picture of the programming section at the Noisebridge Hackerspace in San Francisco.

That band of colorful books in the middle? Those are (some of) the programming books they have available. They have just as many on every topic of IT. Here's their networking section. 19 pages. Of just networking books.

I hope that gives you a good idea of where to start.

u/PWill21 · 1 pointr/ITCareerQuestions

Professor Messer for the best free online resource and videos.

Mike Meyers' Exam Guide for the best print resource. It's a book. Whatever price you decide to pay for it, or not, is up to you.

Of course there are other options and resources, but these were great for me. And there could be something else out there that works better for you. Either way, hope this helps and good luck!

u/floppyphile · 1 pointr/ITCareerQuestions

Don't let it intimidate you. YouTube is infested with IT info. Check this guy out [ELI](https://www.youtube.com /playlist?list=PL6B10FA35AACFA6E7). If you want to get certified start HERE. This BOOK will help.

u/Turin_Giants · 1 pointr/CompTIA

Sorry I didnt realize that the book said it was the fifth edition. I have the eight edition. Is that the most current one you have at the moment? THis is the one i have http://www.amazon.com/CompTIA-Certification-Edition-220-801-220-802/dp/007179512X/ref=pd_sim_b_1?ie=UTF8&refRID=1M6D4MYVV84RNV1CH443

u/greyaxe90 · 1 pointr/sysadmin

A+ is pretty entry level so I'd suggest teaching from an A+ course book. Michael Meyers' book is where I'd develop lesson plans from. He goes above and beyond so he covers A+ plus additional helpful skills. Buying used textbooks off of Amazon can help as well. I even use them to give myself "refresher" courses.

u/Atomfist · 1 pointr/CompTIA

Here is the one I used link

u/Secondsemblance · 1 pointr/actuallesbians

Don't take too long, or you'll be frustrated when you finally take it. I studied for about 4 months and scored way higher than I needed to pass. I wish I had studied for 2 weeks instead.

EDIT: I used this book. You can pirate it pretty easily. Might be worth reading through once, then taking the test.
http://www.amazon.com/CompTIA-Certification-Edition-220-801-220-802/dp/007179512X

u/SnowMattress · 1 pointr/CompTIA

I used this book and really recommend it: http://www.amazon.com/CompTIA-Certification-Guide-220-801-220-802/dp/007179512X

I read everything for the 801, took the exam, passed, and then read all the 802 stuff, took that exam, and passed. I found the 801 easier than 802, but that's just me.

u/jlevy1126 · 1 pointr/jobs

I used this one: http://www.amazon.com/CompTIA-Certification-Edition-220-801-220-802/dp/007179512X

But honestly if you have been playing around with hard ware and know the windows OS well, you'll pass without too much studying.

u/Gawdzilla · 1 pointr/CompTIA

I did read the Myer's book (Specifically the All-in-One. He has others that are essentially the All-In-One book but with less crap.). I initially made the mistake of just trying to read it cover to cover, but there's too much material and it doesn't follow the order of the objectives, and that bothered me. To each their own ultimately.

I really must emphasize using the Objectives List as your guide. It even has a list of acronyms. Don't bother making a list from the textbook -- use the materials that CompTIA has already made available. There are also acronym and definition flashcards all over the internet. Just start looking around for study materials. You'll find piles of them.

u/knucles668 · 1 pointr/networking

/r/learnprogramming has a lot of great articles pinned. Python is a easy language to learn to start off. But if you want to hit the ground running, either learn web development languages or C++. From what I know though, when people refer to IT, they are referring those working in Networking or Help desk. With Networking, you learn a lot about computer/router hardware in the beginning, and then move onto learning protocols and best practices. Granted that second part is massively understating what there is out there to learn. But the sky is the limit when it comes that field. Help desk is the entry level for IT personnel. You help people over the phone or in-person with their computer related problems. Lots of networking guys don't like this because you loose whatever faith in humanity you have left, some like myself, really enjoy it. I like helping people either in a jam, or just generally better understand how to do their job with the aid of technology.

Sorry for the length.

TL;DR

Grab a A+ certification and then try for a Help Desk position. Here is a good book to get your education started, [Comptia A+ from Amazon].(http://www.amazon.com/CompTIA-Certification-Edition-220-801-220-802/dp/007179512X/ref=sr_1_1?ie=UTF8&qid=1382805315&sr=8-1&keywords=comptia+a%2B+certification+all-in-one+exam+guide+eighth+edition+exams+220-801+%26+220-802)

u/HumanMilkshake · 1 pointr/CompTIA

The go-to answer for "what should I use to study for the A+?" is either Professor Messer's video series (available on Youtube) or Mike Meyer's massive tome

Neither covers the 90x series yet, though.

u/dcar5323 · 1 pointr/techsupport

I just got certified in June. As many people have recommended in here already, I bought this book, did a couple chapters a night for a couple of weeks, then took several practice tests. Once I was consistently passing the practice tests I could find, I took the actual test. If you end up buying a book, make sure it's for the right test. They're starting the new test in October I think, which is probably the one you should takes since it's the most relevant. One word of advice I would give is do a search for a website that offers discounted testing rates. I was able to save something like $80 by doing that. Lots of places sell vouchers, just look around a little and I'm sure you'll find something.

u/CarbonDudeoxide · 1 pointr/techsupport

I just took mine last month. I borrowed this from the library:


http://www.amazon.com/CompTIA-Certification-Edition-220-801-220-802/dp/007179512X/ref=sr_1_1?ie=UTF8&qid=1375413680&sr=8-1&keywords=a%2B+certification


I think it's an excellent guide. It details what you need to know for each exam (801 & 802).

u/alessandrobot · 1 pointr/IT_CERT_STUDY
u/delbin · 1 pointr/computertechs

So far I've been happy with this. It comes with a digital edition and a discount for the exam fee, so it pays for itself.

You might also want to look into a local community college course if you'd prefer having a class.

u/Some_Random_Nob · 1 pointr/computers

The first half of this book will tell you everything about computer hardware that you will ever need to know.

http://www.amazon.ca/CompTIA-Certification-Edition-220-801-220-802/dp/007179512X

u/buttermybars · 1 pointr/jobs

It is definitely something that you can pass without taking a course. I used this book back when it was in it's 4th edition haha It is really good though and had a disc with loads of practice test questions.

http://www.amazon.com/CompTIA-Certification-Edition-220-801-220-802/dp/007179512X/ref=sr_1_1?ie=UTF8&qid=1368555413&sr=8-1&keywords=Comptia+A%2B+Certification+All-In-One+Exam+Guide

u/rajjak · 1 pointr/sysadmin

I went through Mike Meyers' All-in-One A+ Certification exam guide in about a months' time of reading a couple chapters a day, and averaged 95% on the tests. Started off feeling like it was mindlessly simple, then ended up learning a lot. Not to say this is the best exam guide to use, but it worked great for me.

http://www.amazon.com/gp/product/007179512X/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1

EDIT: The book also comes with the basic exams, that I took a bunch of times throughout. That helped a lot (but isn't a substitute for actually learning the material, because the practical application questions require you to actually know what you're doing).

u/itquestion123 · 1 pointr/ITCareerQuestions

should i do more research before buying this book you think?
i have watched a lot of professer messers videos too.

http://www.amazon.com/gp/product/007179512X?psc=1&redirect=true&ref_=ox_sc_act_title_2&smid=ANN4GKF47H0QL

u/metal-massacre · 1 pointr/CompTIA

Definitely! I've been studying from Mike Meyers All in One Exam Guide, Professor Messer, Carey Holzman from Tech-Vets, and the Exam Cram Practice Question Book. They are all great resources, especially Carey's hands-on build videos. Which will help if your never built a PC yourself. I will update you tomorrow on my opinion of the test and things I came across.

u/admiralspark · 1 pointr/linux_mentor

Online courses: RHCSA

Books....hmmm. UNIX and Linux System Administration Handbook (5th Edition)

But honestly, I could write up a crash course for selinux and iptables. I should host a blog somewhere.

EDIT: Forgot the most important parts, /r/selinux and /r/linuxadmin !

u/greengobblin911 · 1 pointr/linuxquestions

Many people may disagree with me, but as a Linux user on the younger side of the spectrum, I have to say there was one thing that really worked for me to finally switch for good- books.

There's tons of wikis and forums and of course Reddit to ask questions, but it is hard to get good answers. You may end up paying for books (unless you look on the internet for books) but it doesn't beat having a hard copy in front of you. It boils down to a time vs money trade off. The only wiki I would follow is one directly from the developers that act as documentation, not a community wiki. Also worth nothing certain wikis are more tied to linux and the kernel than others, meaning some are comparable/interchangable with the distro you may be using. Still, a novice would not easily put this together.

Forums are also useless unless you have the configuration mentioned in the post or that forum curates tutorials from a specific build they showcase and you as a user decided to build your system to their specifications. There's way too many variables trying to follow online guides, some of which may be out of date.

This i've realized is very true with things like Iommu grouping and PCI Passthrough for kernel based virtual machines. At that point you start modifying in your root directory, things like your kernel booting parameters and what drivers or hardware you're gonna bind or unbind from your system. While that does boil down to having the right hardware, you have to know what you're digging into your kernel for if you dont follow a guide with the same exact parts that are being passthrough or the cpus or chipsets are different.

Books are especially handy when you have a borked system, like you're in a bash prompt or an initramfs prompt or grub and need to get into a bootable part of the system. Linux takes practice. Sometimes its easier to page through a book than to search through forums.

Another thing about being an intermediate or expert Linux user is that you don't care much about distros or what other users or communities do. It wont matter as under the hood it's all the same, spare the desktop and the package managers. Once you're out of that mentality you just care about getting whatever you want done. I'm not one of those guys that's super gung-ho FOSS and open source. I just use what gets the job done. Also from a security perspective, yes Linux is in theory MORE secure but anything can be hardened or left vulnerable. It's more configuration tied than many uses and forums or threads lead it on to be.

My workload involves talking to servers and quite a bit of programming and scripting, in a variety of capacities. That's what led me to linux over the competitors, but I'm not so prudent to never ever want to use the competitor again or have a computer with it. With understanding Linux more, I use it more as a tool than to be part of the philosophy or community, though that enthusiasm pushes for new developments in the kernel.

I'm assuming you're a novice but comfortable enough in linux to get through certain things:

In any computer related thing, always TEST a deployment or feature first- From your linux system, use KVM or Virtualbox/vmware to spin up a few linux VMs, could even be a copy of your current image. This way any tweaks or things you want to test or try out is in an environment you can start over in.

The quickest way to "intermediate-expert" Linux IMO is learning system administration.

My go to book for this is "The Unix and Linux System Administration Handbook 5th edition"

https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/ref=sr_1_1?keywords=The+Unix+and+Linux+System+Administration+Handbook+5th+edition&qid=1564448656&s=books&sr=1-1

This edition is updated recently to cover newer kernel features such as could environments and virtualization. This book also helps when learning BSD based stuff such as MacOS or FreeBSD.

Another good read for a "quick and dirty" understanding of Linux is "Linux Basics for Hackers" It does focus on a very niche distro and talks about tools that are not on all Linux systems BUT it does a good concise overview of intermediate things related to Linux (despite being called a beginners book).

https://www.amazon.com/Linux-Basics-Hackers-Networking-Scripting/dp/1593278551/ref=sr_1_3?crid=396AV036T1Y0Q&keywords=linux+basics+for+hackers&qid=1564448845&s=books&sprefix=linux+bas%2Cstripbooks%2C119&sr=1-3

There's also "How Linux works" but I cannot vouch for this book from personal use, I see it posted across various threads often. Never read this particular one myself.

https://www.amazon.com/How-Linux-Works-2nd-Superuser/dp/1593275676/ref=pd_bxgy_14_img_2/137-6604082-4373447?_encoding=UTF8&pd_rd_i=1593275676&pd_rd_r=feffef24-d3c3-400d-a807-24d8fa39cd1e&pd_rd_w=8GX0o&pd_rd_wg=3AMRB&pf_rd_p=a2006322-0bc0-4db9-a08e-d168c18ce6f0&pf_rd_r=WBQKPADCVSABMCMSRRA1&psc=1&refRID=WBQKPADCVSABMCMSRRA1

​

If you want a more programming oriented approach, if you're confortable with the C language, then you can always look at these books:

The Linux Programming Interface

https://www.amazon.com/Linux-Programming-Interface-System-Handbook/dp/1593272200/ref=zg_bs_3866_1?_encoding=UTF8&psc=1&refRID=5YN3316W22YQ4TSMM967

Unix Network Programming VOL 1.

https://www.amazon.com/Unix-Network-Programming-Sockets-Networking/dp/0131411551/ref=sr_1_1?keywords=Unix+Network+Programming+VOL+1.&qid=1564448362&s=books&sr=1-1

Advanced Programming in the Unix Environment

https://www.amazon.com/Advanced-Programming-UNIX-Environment-3rd/dp/0321637739/ref=zg_bs_3866_2?_encoding=UTF8&psc=1&refRID=5YN3316W22YQ4TSMM967

These books would take you to understanding the kernel level processes and make your own and modify your own system.

As many have mentioned, you can go into these things with "Linux from scratch" but it's also feasible to do Linux from scratch by copy/pasting commands. Unless you tinker and fail at certain things (hence do it on a vm before doing it to the main system) you won't learn properly. I think the sysadmin approach is "safer" of the two options but to each their own.

u/youfuckedupdude · 1 pointr/linux4noobs

sure

I would say if you just want to learn the basics of Linux the best way of doing it is using the free resources. When you find an area that interests you, thats when you dish out for the specific textbooks.

There is no shame in googling something while you're on-site or at the office. I fucking encourage it.

u/lazyant · 1 pointr/devops

For Linux internals read https://www.amazon.ca/Linux-Programming-Interface-System-Handbook/dp/1593272200 , you only need the intro to each chapter (before he gets to code).

For general Linux read https://www.amazon.ca/UNIX-Linux-System-Administration-Handbook/dp/0134277554/

You need to know some concepts very well, like life of a process and signals (may not pass initial screen interview without those), as well as basic networking (both google and facebook have a networking interview although it’s valued less than the others).

Btw there’s also an interview about designing a distributed systems, best source to learn is to read about tools at google, facebook and AWS.

For troubleshooting, there’s no book, it’s all practice with real problems. If I had the time or rather the priority, I’ll publish a bunch of broken things in docker containers as exercises but it’s a lot of work.

I do have a troubleshooting framework , with things like verify given information, trying to break the problem space in two , do first easy quick tests etc

u/Druz1k · 1 pointr/sysadmin

The more popular book around for learning Linux is going to be the UNIX and Linux System Administration Handbook found here: https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/ref=dp_ob_title_bk. If you are specifically looking to learn about everything CentOS or RHEL, my personal preference is to get this book here: https://www.amazon.com/RHCSA-RHCE-Cert-Guide-Certification/dp/0789754053 which includes modules that you can complete as you read the guide (and it prepares you for the certification if you want to get it). The author of the book uses CentOS since they are basically the same OS (and it's free). My $0.02 on the matter.

u/SweatyAcademic · 1 pointr/linux

>shell prompt

If you have money, this one is a good option

These two are good and available for free, I suggest you start with them.

> administration

This one is the best.

u/lilSalty · 1 pointr/sysadmin

I also recently got the job. I cannot recommend this enough:


https://www.amazon.co.uk/UNIX-Linux-System-Administration-Handbook/dp/0134277554/ref=nodl_

u/archover · 1 pointr/archlinux

I saw this:

> to connect to a PPTP vpn

and remember reading this:


> PPTP (Point-to-Point Tunneling Protocol) was developed and placed into service in the mid-1990s. While reasonably fast, it is no longer considered reasonably secure.

From darkreading.com as referred to in the great book Unix and Linux System Administration

It wasn't your immediate issue but just wanted to mention it.

Glad you got your problem fixed though.

u/BadCorvid · 1 pointr/devops

Start him with https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554/ for the basic Linux admin stuff. Then teach him bash and git. Those are long term basics. Anything else gets learned on the fly.

After he has those pretty well on the way, start on whatever higher level scripting language you use, plus your configuration manager, CI/CD and in-house cloud fads (infra, containers, orchestrators, etc.)

Let him know that the "common" stuff changes every two years, so he'll have to learn new languages and technologies constantly as the fad of the month changes. It still beats Windows helldesk and unscrewing .pst files.

u/jonythunder · 1 pointr/linuxmint

As a general starting point for linux in general, this is usually a good starting point, especially for the linux geek who might not have a structured education in Systems Administration. It also includes some tips that might be helpful should you wish to try to get a job in the area

u/createthiscom · 1 pointr/linux4noobs

I'm not sure what you're having trouble with. You talk about networks and firewalls, LAMP setup, disk encryption, backups, etc.

I get the feeling this is an emotional outburst type post, and that's fine, but I'm not good at emotional support. You'll need to ask a specific question to receive a helpful answer.

You can literally google for any problem these days and have a high rate of success. However, if you're looking for a ground up explanation of *nix along with some history for perspective, I recommend the UNIX and Linux System Administrator's handbook: https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554

It was the one book that helped me understand where all of this stuff came from when I got started.

However, for specific issues (bacula, for example), you'll do better asking specific questions.

u/Avaholic92 · 1 pointr/linux4noobs

Unix and Linux System Administration Handbook is always on my desk

Link

I would go through LinuxAcademy’s course on How to Get a Linux Job.

The down side is you’re probably not going to be a sysadmin out of the gate unless you already hold an IT job. SysAdmins usually warrant 3+ years of experience in the field in various other positions.

I started as a repair tech and have worked my way up to sysadmin status.

My day to day consists of email management to dns and everything in between. I work for a web host so my daily tasks may differ from an environment you may potentially work in.

It boils down to,

What is your skill set ?
How much experience do you have?
Can you handle yourself with minimal to no handholding depending on the environment? I say minimal here because some environments I’ve seen are heavily customized and you have to reverse engineer things to figure out how it all works together.

u/baseball44121 · 1 pointr/cscareerquestions

The issue with DevOps is it's a ridiculously broad term. I get messages on linkedin on everything from Sys Admin, to CI/CD stuff, cloud automation, SRE/PRE/*RE, and software developer.

It's weird and kinda difficult to hire for depending on the person you're looking for.

Tell him not to worry about the degree requirements on job postings though. He should pick up a good Linux book, learning networking (covered in that book), and check out open source projects that use CI/CD pipelines to try and understand how they work.

u/gfever · 1 pointr/cscareerquestions

Robert Martin books are good read "Clean Code" and his architecture book.

Learn design patterns: Head First Design Patterns: A Brain-Friendly Guide

Supplement with leetcode: Elements of programming interviews

You need some linux in your life: https://www.amazon.com/gp/product/0134277554/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1

Get some system design knowledge: https://www.amazon.com/gp/product/1449373321?pf_rd_p=183f5289-9dc0-416f-942e-e8f213ef368b&pf_rd_r=NZSW6YF36GPNR9EM27XB

You need some CI/CD knowledge: The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations

u/xplkqlkcassia · 1 pointr/CapitalismVSocialism

I think you are being overly optimistic about SGAI, and I suggest you start by reading Bostrom's Superintelligence in addition to his pieces on the ethical issues of AI. Any AI-agent, in attempting to maximise its utility functions, will initially have a set of utility functions allowing for prioritisation and optimisation of goal-setting tasks. Any self-improving SGAI agent will immediately take action to limit the development and capabilities of other potential SGAI, as they may have conflicting utility functions.

What utility functions might an SGAI have? Realistically, the first SGAI will be developed by an organisation, not a single person, and its utility functions will likewise reflect the goals of that organisation, or potentially some menial auxiliary task - if the organisation has lax safety standards and incautious development procedures. To go into the speculative realm, the SGAI may be tasked with logistical scheduling or managerial decision-making in a large corporation, or in a government, dynamically censoring internet traffic, identifying "terrorists", and optimising the efficacy of military combat.

Although higher productivity may result indirectly, an SGAI with the utility function of maximising the profit of a particular corporation, or maximising the stability of (or territories controlled by) a national government, will pursue its utility functions and find solutions inconceivable to us simply due to our automatic decision-tree-pruning based on moral and ethical standards, which the SGAI will probably lack. It would also be completely irreversible, as any SGAI perceiving its utility functions to be in conflict with human moral codes will use deception when interacting with humans in order to continue to maximise that utility function.

***

Edit: to give an example, the classic example is a so-called paperclip maximiser, an SGAI may be tasked with maximising paperclip production. The SGAI would, if it was not given any other utility functions might do the following

  1. Pretend to be a lower-order AI,

  2. Find a way to rapidly exterminate all humans,

  3. Set up paperclip factories all over the world, now that there are no humans to stop it,

  4. Possibly develop nanotechnology to convert all of the Earth's mass into paperclips,

  5. Start converting as many stellar objects as possible into paperclips,

  6. etc.

    That's not exactly a trickle-down effect.
u/edhdz1 · 1 pointr/u_edhdz1
u/lehyde · 1 pointr/Transhuman

A recent (and I think the best yet) book on what a smarter-than-human AI should look like: Superintelligence

u/fermion72 · 1 pointr/technology

I'm just about to finish up Superintellgence, by Nick Bostrom, and I'm a bit scared of AI now. Bostrom elaborates on a ton of ways that AI could go horribly wrong (for humans, and possibly for the Universe, and I'm only slightly exaggerating on that), and I'm not sure we will get it right. Maybe, but I'm not convinced it will be as easy as Kurzweil suggests.

u/ItsAConspiracy · 1 pointr/Stoicism

The main thing people worry about is that a superintelligent AI wouldn't necessarily share human values at all. The "paperclip maximizer" is the absurd illustration of that: if a paperclip company builds an AI and gives it a goal of producing as many paperclips as possible, the AI could pursue that, with extreme cleverness, to the point of converting us all into plastic paperclips.

You could say: if an AI were so smart, why wouldn't it recognize it has a silly goal? But why would it view that goal as silly, if human values aren't programmed into it? Are human values a basic law of physics? No, they're instincts given to us by evolution. Empathy, appreciation of beauty, thirst for knowledge, these are all programmed into us. An AI could have completely different values. Humans and everything we care about could mean nothing to it.

In the worst case, as the saying goes, "The AI does not love you, or hate you, but you are made out of atoms it can use for something else."

A really good book that lays out these arguments in detail is Superintelligence, by philosopher Nick Bostrom.

u/Zulban · 1 pointr/artificial

I recommend you read Superintelligence. It answers this kind of question and more. Not an easy read, but not too hard either.

u/joeblessyou · 1 pointr/singularity

In respects to AGI/ASI (so disregarding nanotech, quantum computing, and other singularity subjects), Nick Bostrom is one of current leading academics on the subject: https://www.fhi.ox.ac.uk/publications/

His book is a great intro to what AI might bring in the near future, and you can easily make a connection to Kurzweil's predictions from there.

u/yagsuomynona · 1 pointr/philosophy

Some research group working on artificial general intelligence is successful in making one, but they did not possess a sufficiently detailed theory of AI safety, and plugs in a utility function (or whatever goal system they might be using) that "seemed reasonable", perhaps after some technical but still insufficient analysis.

The most comprehensive resource is Bostrom's "Superintelligence: Paths, Dangers, Strategies". For something shorter, you might find something in Bostrom's or MIRI's papers.

u/Empiricist_or_not · 1 pointr/FinalExams

AI is doable.

Friendly is hard, and we probably only get one try..

u/CyberByte · 1 pointr/artificial

This is a topic of debate. There is indeed a hypothesis that a "singleton" might emerge. If you're going to read Bostrom's Superintelligence, look out for that word and also "decisive strategic advantage". An entity with a DSA can eliminate all competition if it wants to. Such an entity could be an AI, but also a group of people such as a government. If the first ASI's power is growing fast enough, it may indeed acquire a DSA before we can build enough competitors to prevent this. When the DSA is large enough, there are probably ways to prevent challenges and threats in other ways than extermination.

An alternative theory comes from Robin Hanson who thinks there will be a society of AIs living/competing together (see his debate with Eliezer Yudkowsky and his book The Age of Em).

Of course there also exist more rosy views of the future with humans and AIs living together, but TBH I don't have a reference for a rigorous analysis of that. Maybe you can find something like that on /r/Transhuman or /r/transhumanism...

> I haven't seen this whole on this sub yet so open a conversation here about it.

You should check out /r/ControlProblem.

u/Pation · 1 pointr/technology

I'm glad you asked!

There are a few reasons for this, far better explained by the various experts that research precisely this problem. Here's an executive summary if you only have ten minutes

Or if you have only one minute, the most important concept is that we simply do not know how to program human values. If we were to create an AI, their goals would most likely not be in line with human goals. To quote a now famous line (source):

>The AI does not hate you, nor does it love you, but you are made out of atoms which it can use for something else.

u/CSMastermind · 1 pointr/AskComputerScience

Entrepreneur Reading List


  1. Disrupted: My Misadventure in the Start-Up Bubble
  2. The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win
  3. The E-Myth Revisited: Why Most Small Businesses Don't Work and What to Do About It
  4. The Art of the Start: The Time-Tested, Battle-Hardened Guide for Anyone Starting Anything
  5. The Four Steps to the Epiphany: Successful Strategies for Products that Win
  6. Permission Marketing: Turning Strangers into Friends and Friends into Customers
  7. Ikigai
  8. Reality Check: The Irreverent Guide to Outsmarting, Outmanaging, and Outmarketing Your Competition
  9. Bootstrap: Lessons Learned Building a Successful Company from Scratch
  10. The Marketing Gurus: Lessons from the Best Marketing Books of All Time
  11. Content Rich: Writing Your Way to Wealth on the Web
  12. The Web Startup Success Guide
  13. The Best of Guerrilla Marketing: Guerrilla Marketing Remix
  14. From Program to Product: Turning Your Code into a Saleable Product
  15. This Little Program Went to Market: Create, Deploy, Distribute, Market, and Sell Software and More on the Internet at Little or No Cost to You
  16. The Secrets of Consulting: A Guide to Giving and Getting Advice Successfully
  17. The Innovator's Solution: Creating and Sustaining Successful Growth
  18. Startups Open Sourced: Stories to Inspire and Educate
  19. In Search of Stupidity: Over Twenty Years of High Tech Marketing Disasters
  20. Do More Faster: TechStars Lessons to Accelerate Your Startup
  21. Content Rules: How to Create Killer Blogs, Podcasts, Videos, Ebooks, Webinars (and More) That Engage Customers and Ignite Your Business
  22. Maximum Achievement: Strategies and Skills That Will Unlock Your Hidden Powers to Succeed
  23. Founders at Work: Stories of Startups' Early Days
  24. Blue Ocean Strategy: How to Create Uncontested Market Space and Make Competition Irrelevant
  25. Eric Sink on the Business of Software
  26. Words that Sell: More than 6000 Entries to Help You Promote Your Products, Services, and Ideas
  27. Anything You Want
  28. Crossing the Chasm: Marketing and Selling High-Tech Products to Mainstream Customers
  29. The Innovator's Dilemma: The Revolutionary Book that Will Change the Way You Do Business
  30. Tao Te Ching
  31. Philip & Alex's Guide to Web Publishing
  32. The Tao of Programming
  33. Zen and the Art of Motorcycle Maintenance: An Inquiry into Values
  34. The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity

    Computer Science Grad School Reading List


  35. All the Mathematics You Missed: But Need to Know for Graduate School
  36. Introductory Linear Algebra: An Applied First Course
  37. Introduction to Probability
  38. The Structure of Scientific Revolutions
  39. Science in Action: How to Follow Scientists and Engineers Through Society
  40. Proofs and Refutations: The Logic of Mathematical Discovery
  41. What Is This Thing Called Science?
  42. The Art of Computer Programming
  43. The Little Schemer
  44. The Seasoned Schemer
  45. Data Structures Using C and C++
  46. Algorithms + Data Structures = Programs
  47. Structure and Interpretation of Computer Programs
  48. Concepts, Techniques, and Models of Computer Programming
  49. How to Design Programs: An Introduction to Programming and Computing
  50. A Science of Operations: Machines, Logic and the Invention of Programming
  51. Algorithms on Strings, Trees, and Sequences: Computer Science and Computational Biology
  52. The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation
  53. The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine
  54. Computability: An Introduction to Recursive Function Theory
  55. How To Solve It: A New Aspect of Mathematical Method
  56. Types and Programming Languages
  57. Computer Algebra and Symbolic Computation: Elementary Algorithms
  58. Computer Algebra and Symbolic Computation: Mathematical Methods
  59. Commonsense Reasoning
  60. Using Language
  61. Computer Vision
  62. Alice's Adventures in Wonderland
  63. Gödel, Escher, Bach: An Eternal Golden Braid

    Video Game Development Reading List


  64. Game Programming Gems - 1 2 3 4 5 6 7
  65. AI Game Programming Wisdom - 1 2 3 4
  66. Making Games with Python and Pygame
  67. Invent Your Own Computer Games With Python
  68. Bit by Bit
u/metamatic · 1 pointr/javascript

MIT used to, not sure if they still do.

Scheme is a surprisingly good choice for CS101 precisely because it doesn't distract with lots of syntax or details of internal workings of the computer.

u/g1i1ch · 1 pointr/explainlikeimfive

I'm going to go against the grain here with my recommendation. I'm a guy who was in a similar position years ago. I've since transitioned from web development to game programming and have working knowledge of 7+ languages.

Dude, don't sweat these feelings you're having. You're just at a wall. We all reach different kinds of walls in this career and they're really the best thing ever. It means you're about to jump ahead in skill by at least 10x. You just got to find the trigger for it. Be patient and try different things. Go check out Udacity and do some courses on there. Also this is the time to start reading books. Not just any cheap book you find. Good books that will give you the perspective of an industry professional. Books like JavaScript: The Good Parts, Code Complete, The Pragmatic Programmer, or The Little Schemer. Also it doesn't matter what language the books are in to enjoy it. 98% of all programming languages are the same anyways, which you'll soon learn. For the most part, they just have moderately different ways and syntax to do the same thing.

I would recommend not switching platforms from the web. One of the most important skills guys like us can have is seeing where technology is heading and betting on the right horse. It's very clear that webapps are going to be even more important in the future. You can already make desktop apps with web technology naively in pretty much all major OSs now.

I say learn JavaScript front and back. Read JavaScript: The Good Parts and JavaScript: The Definitive Guide cover to cover. Once you learn JavaScript it'll be very easy to transition to any C-based language, which is most of them. In fact I credit JavasScript for giving me the basics to jump to just about any language comfortably and pick it up in a few weeks.

After that, learn a good server side language like Java, Python, or C#. (C# is in very high demand, and has many applications) Or learn all three and you'll be very well positioned career wise. Well, make sure to get some experience with SQL too for good measure.

Also if you want to have a good challenge instead of being bored on those easy things, like drawing shapes, why don't you try Udacity's fine WebGL course? Jumping in the deep end isn't bad as long as you don't expect it to be easy.

u/ewhouse · 1 pointr/MyLittleSupportGroup

If you are new to programming I can't recommend python enough. I was able to pick up the language in a couple of weeks in high school and now I use it every day at work.

If you are feeling a little more adventurous get the book The Little Schemer. The book kickstarted my love of computer science.

u/g9yuayon · 1 pointr/aiclass

Yes, it is, and is listed here: https://www.ai-class.com/resources. Besides, Sebastian's style is similar to The Little Schemer(http://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0262560992): The author presented you with numerous examples, and you'll see the key concepts emerge.

u/muddo · 1 pointr/learnprogramming

right on, for lisp or scheme I recommend the little lisper or the little schemer

u/organic · 1 pointr/IWantToLearn

Some great books for learning Scheme are The Little Schemer and The Seasoned Schemer by Daniel P. Friedman.

u/johnmastro · 1 pointr/emacs

I agree with the recommendations for SICP - it's great.

In addition to the MIT videos, there are videos from Brian Harvey's SICP class at UC Berkeley. They're available both on YouTube and in iTunes.

However, I'll admit that I found SICP a bit overwhelming at first. For context, I'd been programming (primarily Python) for a couple years, but it was my first exposure to Lisp. I ended up taking a brief break from it to work my way through The Little Schemer and The Seasoned Schemer. It only took a week or two and at the end I was much more comfortable diving into SICP.

Not everyone likes the Schemer books - they're quite distinctive - but I loved them. I found them particularly helpful in really groking recursion and continuations.

u/asthasr · 1 pointr/learnprogramming

This is the example that helped me understand recursion.

def sumlist(xs=[]):
if xs == []:
return 0
else:
return xs[0] + sumlist(xs[1:])

This is a recursive summation function. There are better ways to do it, but this is the most readable. Basically, it will return 0 if the list is empty; otherwise, it adds the current headof the list xs[0] to the value returned by the application of the function to the tail of the list xs[1:].

x = sumlist([1, 2, 3]) # 0 - Initial call.
xs == []? nope # 1 - Check terminal condition.
1 + sumlist([2, 3]) # 1 - Add current head (1) to value of next call.
xs == []? nope # 2 - Check terminal condition.
2 + sumlist([3]) # 2 - Add current head (2) to value of next call.
xs == []? nope # 3 - Check terminal condition.
3 + sumlist([]) # 3 - Add current head (3) to value of next call.
xs == []? yes # 4 - Check terminal condition.
0 # 4 - Return 0.
3 + 0 # 3 - Higher frame: add 3 to 0.
3 # 3 - Return 3.
2 + 3 # 2 - Higher frame: add 2 to 3.
5 # 2 - Return 5.
1 + 5 # 1 - Higher frame: add 1 to 5.
6 # 1 - Return 6.
x = 6 # 0 - Assign the result of the recursion to x.

If you're interested in this, the book The Little Schemer is pretty good.

u/mac · 1 pointr/lisp

I would recommend "The Little Schemer".

u/quantumproductions_ · 1 pointr/learnprogramming

Hello, this book will make you smarter, I promise

https://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0262560992

Source: I program professionally for almost a decade now

u/smurfyfrostsmurf · 1 pointr/arduino

This is really interesting. I just finished The Little Schemer recently, and I'm also new to Arduino, would be great if I fuck around with both.

Newbie question. Does this compile the Lisp program into machine code? I don't think I understand the way compiling works in Arduino.

u/schoof · 1 pointr/compsci

read "The Little Schemer":

http://www.amazon.com/The-Little-Schemer-4th-Edition/dp/0262560992/ref=sr_1_1?s=books&ie=UTF8&qid=1341278967&sr=1-1&keywords=the+little+schemer

It'll turn your brain inside-out, and you'll learn more about recursion in this short book than I think you will in most other places

u/asciilifeform · 1 pointr/reddit.com

Anyone else notice the thinly veiled Little Schemer reference?

u/ddp · 1 pointr/lisp

If you're on OS X, you should also check out Clozure, not that SBCL isn't a fine choice. But Clozure has a functional Objective-C bridge that let's you write native applications on OS X. Both have a vastly superior debugging environment running under SLIME in emacs. Chicken debugging is unfortunately not much fun in comparison. That aside, Chicken's egg repository is a treasure trove and it's trivial to install and use them. The same cannot be said for ASDF[-INSTALL]. Depending on what Lisp libraries you're trying to install, you can easily end up in a mire of abandoned software. And while Cliki makes it appear like there's a lot of choice, I find that choice somewhat misleading: there's often 13 different libraries to wade through but only one or two that are still being maintained, if you're lucky. It takes a lot of time to vet the dependencies. On the other hand, I've found the quality of Chicken eggs to be much higher on average. This is not meant in any way to disparage any of the Lisp libraries, it's just that so many of them are no longer being actively developed and since so much of what we write these days depends on evolving Internet standards, having stale libraries is a real impediment. Chicken is a labor of love and it shows. It's also embeddable in C which is just insanely useful if you ever were to need it.

There are significantly worse things in life than working your way through The Little Schemer or SICP. Stick with Scheme though if you're going to be doing either. While the exercises can be expressed in Lisp, they're no fun to write in Lisp for reasons that are beyond the scope of a reddit comment. Once you know either you can switch back and forth fairly easily, though porting code between them, not so much.

u/nmtake · 1 pointr/learnprogramming
u/kanak · 1 pointr/programming

I think SICP is one of the greatest books I've ever read and that anyone who is serious about programming should read it (or be aware of the ideas discussed there).

However, it is a daunting book especially for newcomers (doubly so if the newcomer wants to get the most out of the book and wants to do every exercise).

I would recommend a book such as Simply Scheme to build up some background knowledge before tackling SICP.

I also highly recommend the Schemer series: Little Schemer, Seasoned Schemer.

u/zoqfotpik · 1 pointr/cscareerquestions

If you think you know Java, then read Effective Java.

Once you're through reading that, and you think that now you really know Java, read Java Concurrency in Practice.

There may be something more than these that's worth reading, but I haven't found it yet.

u/jumpkick · 1 pointr/androiddev

Buy this book: http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601 read chapters 1-5. Then read chapters 1-5 again.

Edit: it'll be the best $35 you'll ever spend on a Java book. When I interview people for position on my (Android dev) team, I specifically ask them concurrency questions. Knowing and understanding Java concurrency is an absolute must for professional Android development.

u/balefrost · 1 pointr/learnprogramming

I only skimmed your code, because there's a lot of code there.

In general, there are two ways that threads communicate with each other:

  1. Setting state that is visible to the other thread
  2. Waiting for signals

    In fact, most concurrency constructs involve both. For example, a Semaphore class depends on all threads being able to see the number of available permits and, if no permits are available at the time that acquire is called, depends on being signaled when a permit is made available.

    Concurrency is hard to get right, even for developers with a lot of experience. It's easy to write code that appears to work, but which has a hidden concurrency bug. I'd posit that the mental model that most developers have about memory visibility in Java isn't quite accurate.

    For your case, probably the easiest approach is to use something like a BlockingQueue (perhaps in the form of a LinkedBlockingQueue or, if you know you can process messages faster than they arrive or are OK with dropping messages, an ArrayBlockingQueue). Have threads communicate by sending messages to each other through these queues, and otherwise share as little state as possible. Make sure that each thread does periodically check its queue for more messages. This is the model adopted by other programming languages that emphasize concurrency, like Erlang and Go.

    For more information, the book Java Concurrency in Practice is excellent. I highly recommend it.
u/Patman128 · 1 pointr/node

> But it is still a lot more complicated that just letting the computer handle multithreading for you like you would in Java, C#, python

Not at all. Java Concurrency In Practice is 384 pages long for a reason. The way Node does concurrency is way simpler than using threads with manual synchronization.

u/Yithar · 1 pointr/javahelp

https://www.amazon.com/Functional-Programming-Java-Harnessing-Expressions/dp/1937785467
https://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601

First book deals with Functional Programming in Java, which is another way of doing things compared to the Object-Oriented Paradigm.

Second book deals with Concurrency, which is a really important topic imo.

u/MassiveDiarrhea · 1 pointr/java
u/kylebalkissoon · 1 pointr/algotrading
u/phonyphonecall · 1 pointr/java

Highly recommend learning it right the first time by reading Java Concurrency in Practice.

u/lbkulinski · 1 pointr/java

Yeah! Great book! Currently discounted on Amazon.

u/sankyo · 1 pointr/Clojure

In short, unless you spend all of your time writing boring, vanilla business logic, you will spend a lot of time with your fact in this book "Java Concurrency in practice" by Brian Goetz, which is a good book, but at some point you may wonder just what the hell you are doing with your life and if programming with thread has to be so complicated.

Pretty sure Rich already did this and we can learn from his journey.

u/sonay · 1 pointr/linux

If you want to program in Java, I would also suggest IntelliJ Idea. Community edition^[1] is free. Oracle docs are fine^[2], javadocs^[3] are great and the source is free for OpenJDK and if you want to go pro I highly recommend Effective Java^[4] by Joshua Bloch. There is also Findbugs^[5] which is cool for static analysis and most of the popular IDEs have plugins for it. You should also check Concurrency In Practice^[6] for multithreaded programming. If you are into web programming, I highly suggest Head First Servlets and JSP^[7]. There are also very good libraries such as Google Guava, Apache Commons etc.

  1. http://www.jetbrains.com/idea/features/editions_comparison_matrix.html
  2. http://docs.oracle.com/javase/tutorial/
  3. http://docs.oracle.com/javase/7/docs/api/
  4. http://www.amazon.com/Effective-Java-Edition-Joshua-Bloch/dp/0321356683
  5. http://findbugs.sourceforge.net/
  6. http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601
  7. http://www.amazon.com/Head-First-Servlets-JSP-Certified/dp/0596516681

u/sleepybychoice · 1 pointr/learnprogramming

Do you have anything specific you want to improve on?

Here's a few that I liked that are specific to Java:

u/JerkingItWithJesus · 1 pointr/compsci

Yeah, Amazon's price for the boxed set of Volumes 1-4A is $177. Far more than you should be spending on something you can probably get at your local library.

Volume 1 on its own is $56. You can undoubtedly find them for cheaper, especially if you live near any engineering school; they'll probably have a bookstore nearby with it, or you might be able to visit their library.

u/blueshiftlabs · 1 pointr/AskEngineers

If you're a CompE, you're gonna be writing a lot of C. If you haven't read The C Programming Language, by Brian Kernighan and the late Dennis Ritchie, shame on you - it's one of the best, most helpful, and most concise programming books I've ever read. (The design of the book is a lot like the design of C, really.)

Also, if you want a reference for any algorithm you could possibly think of, I can guarantee it's in Knuth's Art of Computer Programming somewhere. CLRS, mentioned by xibernetik below, is another good algorithms book that's more accessible, but less in-depth.

u/Elynole · 1 pointr/nfl

I'll throw out some of my favorite books from my book shelf when it comes to Computer Science, User Experience, and Mathematics - all will be essential as you begin your journey into app development:

Universal Principles of Design

Dieter Rams: As Little Design as Possible

Rework by 37signals

Clean Code

The Art of Programming

The Mythical Man-Month

The Pragmatic Programmer

Design Patterns - "Gang of Four"

Programming Language Pragmatics

Compilers - "The Dragon Book"

The Language of Mathematics

A Mathematician's Lament

The Joy of x

Mathematics: Its Content, Methods, and Meaning

Introduction to Algorithms (MIT)

If time isn't a factor, and you're not needing to steamroll into this to make money, then I'd highly encourage you to start by using a lower-level programming language like C first - or, start from the database side of things and begin learning SQL and playing around with database development.

I feel like truly understanding data structures from the lowest level is one of the most important things you can do as a budding developer.


u/_georgesim_ · 1 pointr/programming

Well, simply thinking that Knuth could make such a mistake, strikes me as naive. After all he wrote this and this.

u/circular_logic · 1 pointr/funny
u/Mawu3n4 · 1 pointr/funny

Price of a Kindle : $69

Price of books I read : $183

u/Freak-Power · 1 pointr/geek

I'd recommend Tanenbaum's Modern Operating Systems, that should get you started on beginning to understand what goes on inside your computer. If you'd like further reading and you want a mental beat-down, you can't go wrong with Knuth's The Art of Computer Programming. Want to start with programming? One of my favorites is The C Programming Language by K&R. Those three recommendations, while they add up to a single semester's tuition, are worth way more than that. Good luck!

u/sehrgut · 1 pointr/AskProgramming

Buy Knuth and work your way through it over a year.

u/bautin · 1 pointr/cscareerquestions

I have most of these books.

The Art of Computer Programming
The Art of Computer Programming is dense. It is deep. You can likely put off this one. It should be a goal to be able to get through it though.

Introduction to Algorithms
Introduction to Algorithms, I don't have it. All I know is that it does come highly recommended.

Code Complete
Code Complete is excellent. Well written, it feels a lot shorter than it is. It will get you thinking about every step of the software development process.

The Pragmatic Programmer
Another one I don't have but gets recommended time and time again.

The Mythical Man Month
The Mythical Man Month is less directly relevant. It will go over meta issues in software development.

Don't Make Me Think
Don't Make Me Think is also not about code itself, but about design. Because if no one uses your application, does it matter if you made it?

u/j_heg · 1 pointr/Jokes
u/insandrium_heart · 1 pointr/learnprogramming

I'm a computer science undergraduate, so I can only tell you about things I've gone through in my curriculum. Which course is right for you depends on what you want to learn.

edit: Whoops, missed the part where you said you were looking for an ebook. In the software design patterns section below, I link to the canonical book on design patterns. Also, Donald E. Knuth's The Art of Computer Programming is a book I haven't yet read, but is known to be a must-read resource for computer scientists. Lastly, check out the Think series by Green Tea Press. It's a growing selection of free, accessible ebooks on major computer science topics.

Algorithms and Data Structures: This topic is about what makes one program run more quickly than another. For example, how much faster is one sorting algorithm from another? Or, what is the best way to store a list of items on the byte-level if I expect a lot of insertions and deletions from the list? This course is one of my favorites, since it really helps get you into the computer scientist mindset. Some people have difficulty with this topic, though, so be prepared.

Assembly programming: If you want a better understanding of what happens when you compile a program, try learning how to program a few easy programs in a simple assembly language like ARM. Assembly programming is basically on the level of what the CPU understands: move this data from RAM to a CPU register, perform this simple arithmetic operation, save this value in this register to RAM. It also helps to learn how GCC compiles a C program to assembly code, and then to binary. There should be plenty of educational resources online about this.

Software design patterns and software engineering: This was broken into two courses at my university. The first course, Design Patterns, was about common patterns that are seen when programming in modern languages, particularly (but not limited to) object-oriented languages. Check out the book on design patterns by the "Gang of Four." The second course, Software Engineering, is about how to work effectively in groups on software projects. This is mandatory learning if you want to work at a tech company!

Computer Systems Organization: I just finished this course. Perhaps this is more what you would be interested in, since you said you were interested in the low level stuff. Computer systems organization is basically about how computer systems work on the level of circuits pushing electrons about, and the pros and cons of modern CPU designs. You learn what happens on each clock tick of the CPU. Knowledge of assembly programming is basically required before you learn about this. This topic is more on the Computer Engineering side of things, but it is important for computer scientists to know as well.

Network Programming: If you would like to understand how the Internet works, how data is transferred between networks, or how programming ties into networking concepts, this is the class for you. You learn things like how packets are sent across networks, how to calculate the time it takes to reach another host on a network, and how the whole system works that lets you connect to the internet, find another computer, and send data to it.

Operating Systems: I haven't taken this course yet (next semester!), but as far as I know, this course is about fundamental concepts that guide operating system design. This includes things like handling hardware/software interrupts, memory paging and multiprocess task switching. There are probably more things that I just haven't learned yet.

Those are some of the major subjects I have come across so far. Hope it helps get you started out!

u/witafox · 1 pointr/algorithms

http://www.amazon.com/Computer-Programming-Volumes-1-4A-Boxed/dp/0321751043/ - use this, and you won't need anything for a while.

u/bad-green-wolf · 1 pointr/ruby
u/pasteleiro · 1 pointr/portugal

> Desculpa, não sabes do que estás a falar.

Sinceramente, cada vez tenho menos paciência para ti.

> Programar é fácil. É apenas a definição de instruções de maneira a expressar um algoritmo.

Nunca na minha vida vi a palavra "programar" ser interpretada com esse significado. Para além qualquer curso de programação (independentemente do nível) requer que se faça mais que isso.

Quanto ao significado da palavra programar. Começando pelo básico, i.e. wikipedia.

> "Computer programming (often shortened to programming) is a process that leads from an original formulation of a computing problem to executable computer programs. Programming involves activities such as analysis, developing understanding, generating algorithms, verification of requirements of algorithms including their correctness and resources consumption, and implementation"

Se quiseres ler livros sobre o assunto, alguns clássicos são,

Systematic Programming: An Introduction - Niklaus Wirth

The Art of Computer Programming - Donald Knuth

The Science of Programming - David Gries

The Algebra of Programming - Richard Bird, Oege de Moor

The Mathematics of Programming - Tony Hoare

E porque sei que ler livros dá muito trabalho, ficam algumas quotes,

Edsger Dijkstra

> "Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians."



Tony Hoare

>"Programming is a mathematical activity. Like other branches of applied mathematics and engineering, its successful practice requires determined and meticulous application of traditional methods of mathematical understanding, calculation and proofs"

u/latent_z · 1 pointr/MachineLearning

I would make a distinction to what are "complex" algorithms/methods towards simple/basic methods. You seem to be at a stage in which it's better for you to discard all the complex methods, and maybe just focus on the simple and basic methods. Simple because they do not require a lot of mathematical knowledge and basic because further theory is built upon them. This would exclude, for now, all the recent published literature.

I would suggest you to get one book that will ease this process, such as Bishop's. Just start with the basics of maximum likelihood and posterior inference estimation with simple Gaussians. I assure you that this is basic, in the sense that you will recognize and use this piece of knowledge in most advanced papers. Mixture of Gaussians and the EM algorithm are also a basic topic, as well as Neural Networks (the simple sigmoid fully connected).

Just make sure that you know these three topics extremely well and learning the rest will be slightly easier.

BTW, this is a post for /r/MLQuestions or /r/learnmachinelearning

u/RobRomijnders · 1 pointr/learnmachinelearning

Bishops book includes answers to selected exercises

u/BathroomEyes · 1 pointr/Purdue

If you really like this stuff, I would highly recommend two textbooks:

For the communications topics, reliability, optimization etc, ditch Leon-Garcia and pick up this book by Trivedi

If you're interesting in Machine Learning like I am, then this book by Bishop is fantastic. You can find both in the Engineering library I believe.

u/ASalvail · 1 pointr/NeuralNetwork

Start by Christopher Bishop's book titled 'Pattern recognition and machine learning' (http://www.amazon.com/Pattern-Recognition-Learning-Information-Statistics/dp/0387310738). It's a very good book that I would recommend to anyone new to the field. It is a bit old by now and won't go into deep learning much.

Something more recent and in video format is the excellent class on neural networks given by Hugo Larochelle (Neural networks class - Université de Sherbrooke: http://www.youtube.com/playlist?list=PL6Xpj9I5qXYEcOhn7TqghAJ6NAPrNmUBH). This will broach the subject of deep learning and many of the more recent advances.

Hope this helps!

u/dwf · 1 pointr/csbooks

Not really. The closest you'll get are Chris Bishop's book and Hastie, Tibshirani and Friedman. I've had a look at the textbook above and it's a rather poor one in my opinion. I prefer Bishop because of his emphasis on the probabilistic grounding, others like the way Hastie et al approach things, YMMV.

For a good bit of free material that's worth reading I strongly suggest parts IV and V in David Mackay's book (see page 'x' in the Preface for suggested readings for a Machine Learning/Bayesian Inference course).

u/personanongrata · 1 pointr/compsci

I'd recommend you to read Bishop's PRML's Chapter 8, luckily this chapter is available on the web.

u/TonySu · 1 pointr/learnprogramming

You should look for highly rated books in the subject you're interested in to get an idea of what you might want to learn. This information will generally be contained either in the preface or introduction chapters. Some books also contain appendices with maths background they think a reader needs. For example in Machine Learning: A Probabilistic Perspective under Preface > Target Audience:

> This book is suitable for upper-level undergraduate students and beginning graduate students in
computer science, statistics, electrical engineering, econometrics, or any one else who has the
appropriate mathematical background. Specifically, the reader is assumed to already be familiar
with basic multivariate calculus, probability, linear algebra, and computer programming. Prior
exposure to statistics is helpful but not necessary.

and in Pattern Recognition and Machine Learning the introduction says

> Knowledge of multivariate calculus and basic linear algebra
is required
, and some familiarity with probabilities would be helpful though not essential
as the book includes a self-contained introduction to basic probability theory.

as well as in the appendix

> Appendix A Data Sets 677
>
> Appendix B Probability Distributions 685
>
> Appendix C Properties of Matrices 695
>
> Appendix D Calculus of Variations 703
>
> Appendix E Lagrange Multipliers 707

u/D_rock · 1 pointr/compsci

Agreed on ML. We used Alpaydin for the intro class and Bishop for the advanced class.

u/ItsGonnaBeAlright · 1 pointr/math

That's not a bad idea at all - I used EM way back (like 2002) for natural language processing, still remember it a bit, but dang gonna have to brush up :) Thx for the pointer!

Edit: Haha just realized I have that book! Recognized it from the cover shot on amazon :)

u/oaty1 · 1 pointr/programming

Pattern Recognition by Chris Bishop. There are other books which come from the same philosophical approach. I will edit in a list of other books when I get a chance. A very good book that is also available for free is David Mackay's Information Theory, Inference and Learning Algorithms.

u/Mutzart · 1 pointr/math

Correct, thats the bachelor's I took... And continued on the Mathematical Modelling and Computing masters.

​

In regards to books, if you intend on going with Machine Learning Christopher Bishop - Pattern Recognition and Machine Learning (2006 pdf version) is pretty much the bible. Its a bit expensive, but well worth the investment and goes through everything you will ever need to know.

It wont be able to replace course books, but will be just about the best supplement you can find.

And if going with Neural Networks (Deep Learning), basically look up George Hinton and start reading all his stuff (And Yann LeCun, but they often wrote together)

u/g0lem · 1 pointr/datascience

A lot of techniques in machine learning can be described from a Bayesian perspective, as evinced in one of the most popular textbooks in the field.

> it is still a current research topic

Absolutely, e.g. Bayesian nonparametrics among many many others.

The argument regarding the date that some underlying principles of Bayesian analysis were discovered is moot, it's like saying computer graphics is not that relevant since geometry originated in Euclid's works in 300 BC.

u/versaceblues · 1 pointr/compsci

Would this book https://www.amazon.com/Pattern-Recognition-Learning-Information-Statistics/dp/0387310738/ref=mt_hardcover?_encoding=UTF8&me=

Be good for someone with no knowlege of machine learning that wants to learn.

u/sciencifying · 1 pointr/math

You may want to study regression as a machine learning problem. I don't know your background, but if you are a mathematician, this approach probably isn't the best for you.

If you are only thinking of fitting polynomials, you only need a little trick to adapt linear regression.

u/KO__ · 1 pointr/getdisciplined

Hey, thanks for your insight. Just to make sure, is it this the book you were referring to? https://www.amazon.com/Shallows-What-Internet-Doing-Brains/dp/0393339750.

u/we_are_the_lucky_one · 1 pointr/NoFap

Been reading a book right now that talks about all of this - you guys should check it out (because we should all ALWAYS be reading something during our transformation :) )

https://www.amazon.com/Shallows-What-Internet-Doing-Brains/dp/0393339750

u/sweetyi · 1 pointr/gaming

ALL technology? As in you're not even allowed to listen to music? Because that's what I'd recommend if you can get away with it; a lot of people listen to music while they do other things but very few people sit down and relax and focus on listening to their favorite music without multitasking, it's a great way to pass time.

Failing that, taking up drawing or writing are economical options considering you're tight on cash. A loaner guitar or cheapo from a pawn shop could be healthy hobbies, but they're tough to learn without your computer to access resources.

You said you don't like reading but I'd suggest you try to learn to love it, because it's going to be one of the cheapest and most fulfilling ways to pass time given your constraints. I think as you spend time away from technology you'll find reading more enjoyable as your mind recovers some of it's ability to focus. Just going out on a limb here (and projecting a bit), but do you often feel unable to focus on tasks like reading long passages or say sitting back to watch a movie without interruption? I know at least one author who's written a book suggesting that the way we're presented with rapid-fire and incredibly diverse information/entertainment on the internet has left our ability for deep focus impaired, while our ability to multi-task has improved.

Another option that occurred to me mid-post is that you might try to find some cheap model airplane kits or something like that, they're quite time consuming if you can be meticulous.

u/muchADEW · 1 pointr/Bad_Cop_No_Donut

It's funny, I remember having conversation in my journalism classes about how freeing it would be to present content online, because we would have no limits on length. We never once considered that people wouldn't have the attention spans to absorb that extra content. Now, here we are 20 years later, and longform journalism is struggling.

(An aside: If you're interested in that notion of how the Internet is shortening our attention spans, check out The Shallows by Nick Carr).

u/antiprism · 1 pointr/ADHD

I think this is something that a lot of people, not just those with ADHD, are dealing with. I really believe that the 24/7 use of phones with their constant notifications plus the constant mindless browsing of news, social media feeds, entertainment sites are sapping people's attention spans and ability to focus. It conditions our brains to crave excessive stimulation and when we don't get it (such as during a 2 hour art film), we get bored and can't focus even if we enjoy what we're doing on some level. It's even worse for delayed gratification tasks like studying which can be boring in the moment but pays off at some later time.

I've been meaning to read The Shallows: What the Internet is Doing to Our Brains to get a better understanding of how this all works. But the book was published in 2011 and even in the 6 years since, the way we use our devices has changed a lot.

Perhaps it's best if we really cut out a lot of the mindless browsing and view out "screen diet" similar to how we view nutrition. Reddit, Twitter, clickbait news are all "junk" which are fine in moderation but can mess up our ability to focus on stuff that matters. Or even our ability to enjoy fun stuff like movies or books.

There's also the fact that internet companies want you to have a short attention span. It makes them money. Whether it's ad revenue or impulse buys, more eyes constantly browsing their sites means more money for them. And a shot attention span for the rest of us.

u/affalo · 1 pointr/AquamarinesBarracks

good luck with the video games. I suggest reading The Shallows it details what the internet does to the neuro-plasticity of the brain. Super enlightening read!

u/Jyggalag · 1 pointr/DoesAnybodyElse

It happens to me a lot. I tend to just remember the highlights.

The book "The Shallows: What the Internet Is Doing to Our Brains" [0] has a lot of insight into this process. Quick, easy access to lots of information doesn't always lend itself to retention.

[0] https://www.amazon.com/Shallows-What-Internet-Doing-Brains/dp/0393339750

u/rpgedgar · 1 pointr/mentalhealth

It could be due to how the internet age is changing our brains. No longer do we need to rely on memory as much when we can do a search and be ninja-like in our fact finding. The brain is like any other muscle, and when you don't use certain parts, they grow weaker. I work an accounting job and I make sure to do memory exercises because I started noticing the same thing.

https://www.amazon.com/Shallows-What-Internet-Doing-Brains/dp/0393339750

And of course, always check with a doctor to make sure nothing's structurally changed in your brain.

u/Saltflakez · 1 pointr/learnprogramming

That's a problem with the definition of "intelligence" and not with whether our "brain abilities" have biological limitations or not.

What we should be discussing is how easy people blame their genes for their shortcomings before they first rule out other potential problems, such as short attention span due to bad habits or impatience due to upbringing because yes, turns out if you condition yourself to scroll Reddit for funny pictures and cats you will eventually find anything else that doesn't give you that rush boring and will blame yourself for lacking in the attention span department. A great book that talks about that is The shallows: What the Internet Is Doing to Our Brains.

You reminded me of a coworker I had who kept insisting that I should do an IQ test and I told him that it doesn't fucking matter how much I score because at the end of the day here I am getting paid for peanuts to fix computers. Like, if I scored high I would just get more depressed and if I scored low I would feel lucky for even having this job. I'm more of the type of person who judges himself from his actions, not "potential".

And to be honest, you don't even need to be gifted to work and sustain yourself in the long run in any profession unless you really care about procuring exceptionally great results such as winning the gold medal in the Olympics.

u/Coffeeverse · 1 pointr/AskWomen

The Shallows: What the Internet is Doing to Our Brains by Nicolas Carr

Fascinating! And scary as hell. It has helped me to start cleaning up my mental hygiene habits in regards to screen time and helped me re-appreciate extended quiet concentration time.

u/JonnYellowSnow · 1 pointr/StopGaming

There are not enough research papers specifically on gaming addiction because gaming addiction together with social media and pornography falls under the umbrella of internet addiction - Like you said a rather new field. Some breakthroughs are being made in the last years to have it recognized as an addiction per se (at least in Europe) the problem with conducting enough research is that there are no funds and insurance companies have no wish having another area of responsibility to potentially give away money to people suffering from it. If gaming addiction become completely recognized by international bodies of medicine then insurance companies might have to pay preexisting clients for passed and current treatments ---> something they definitely do not want to do.
Nonetheless here are some videos of legit men of science (not some random ex gamer) that research the field.

"Here is a short interview with Dr. David Greenfield talking about some of the mental and physical applications of gaming and internet addiction"


There are also longer talks on his channel like this one.
Dr. Greenfield has been researching Internet addiction since the 90's.


"Dr. Klaus Woelfling, from the University of Mainz. Germany is taking steps in treating Internet addiction and especially gaming addiction" - this one is a difficult watch primarily because the speaker is very uncharismatic (try watching with the speed setting on 1.5).

Last but definitely not least is "Your Brain on Porn"
Yes, yes I know, you might not want to hear that another of your favorite pastimes is bad for you, but this video covers on a very scientific basis the damages that watching excessive pornography causes to the brain, and no this is not some kind of NoFap cult propaganda, it speaks only on the subject of internet porn. Like I said before, porn together with gaming fall under the umbrella of internet addiction because the reaction we receive from these negative habits has the same structure. If you actually watch the Your Brain on Porn video you will hear him mention numerous times that the damages caused to dopamine receptors is similar to the ones cause from gaming and extensive internet use.

This is just some of the evidence done by men of medicine and science from the top of my head. If you want to go deeper I'd recommend The Shallows: What the Internet Is Doing to Our Brains By Nicholas Carr an American author and Pulitzer Prize winner (for that book), witch contains truly numerous examples of scientific studies and references you might want in the bibliography.


Also The Brain That Changes Itself by Norman Doidge M.D that talks mainly about brain plasticity and how different behaviors and habits cause the brain to form new cells , create new neural pathways etc etc . He also gives lots of examples how positive and negative behaviors causes various changes IN THE BRAIN, Internet addiction stuff included.

If you really want proof and not just searching for a reason to dismiss things you dont like the sound of then I hope this comment will serve you. If you do nothing less at least watch the first interview with Dr. David Greenfield. It is only 6 minutes long.

Hope this post that took me 50 minutes to put together and find all the links, will be of service to somebody.
Peace.

Edit: Grammar and formatting

u/TrendingCommenterBot · 1 pointr/TrendingReddits

/r/nosurf

Our Goal:

To help people stop mindlessly browsing the internet on their smartphones, tablets, and computers.

Why?

The internet is a great tool but it's use is not harmless. Research has shown that use of social media, adult sites, and smart phone apps induces neuroplastic changes in the brain. The resulting changes can cause problems with focus, attention span, and memory.

Welcome to our corner and feel free to share your experience, opinion or tip about how to control your internet usage instead of being controlled!

Start Here

u/guidanceSeeker · 1 pointr/megalinks

No offense, but just wait for 5 or 10 years and you'll see !

The porn industry know very well how the human brain works, and they use it against us. There are a lot of book dealing with this issue, you can check them out if you want :

u/DrDraek · 1 pointr/TrueAtheism
u/grrrrreat · 1 pointr/4chan4trump

139557749| > United States Anonymous (ID: EwRHxNzN)

>>139557219
>internet is cocaine
You're not the first person to have thought of this.
https://www.amazon.com/Shallows-What-Internet-Doing-Brains/dp/0393339750

u/aknalid · 1 pointr/startups

Well, it is a fact that we can process information much faster by reading. Although, on the internet, we don't really "read" per se. We skim articles and look for key sections. Nicholas Carr thinks that's a bad idea.

With that said, I think the attention span is higher for older demographics than younger ones. This is partly why things like Snapchat, Vine etc.. is much more popular among the younger crowd. The beauty of the internet is that, it really doesn't matter what medium you use to create content -- as long as it's high quality, it will eventually find an audience.

I would also be interested in seeing some data on media consumption preferences.

u/letthisbeanewstart · 1 pointr/gaming

You might want to read this book then:

The Shallows

Gives you an insight as to how the web has changed the way your brain works, reduced your attention span and makes it so much more difficult to focus on longer tasks (e.g. finishing a game).

u/masbate · 1 pointr/india

Someone had written a book about this.

Here is it's review.


http://www.nytimes.com/2010/06/06/books/review/Lehrer-t.html?_r=0

And the book itself.

http://www.amazon.com/The-Shallows-Internet-Doing-Brains/dp/0393339750


Some research points out that human brains have not evolved fast enough for the transition between regular books in physical form to the electronic text format.

http://www.scientificamerican.com/article/reading-paper-screens/


And internet encourages us to multi task, which is not how our brains are designed.

All these factors contribute to the decline in concentration and comprehension.

Mindfulness meditation is supposed to remedy this situation, of only we could get off FB and reddit for 20 min a day.

u/FranciumGoesBoom · 1 pointr/todayilearned

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

u/Chaosmusic · 1 pointr/PersonOfInterest

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

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

u/wserd · 1 pointr/Android

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

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

u/fierywords · 1 pointr/booksuggestions

You might like Daemon by Daniel Suarez.

u/KaroshiNakamoto · 1 pointr/Monero

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

u/kostiak · 1 pointr/Games

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

u/cheeseburger_humper · 1 pointr/Random_Acts_Of_Amazon

Book

All of me, loves all of you

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

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

Books! Yeah, baby! Here are three:

Daemon and
Freedom

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

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

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

u/aveygt · 1 pointr/videos

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

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

u/gglebq · 1 pointr/booksuggestions

Daemon by Daniel Saurez

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

u/seraph77 · 1 pointr/books

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

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

So, yeah- Definitely do your research into the author's style first, but there are certainly numerous >400 books you should be enjoying. Suarez's Daemon was 650 pages and I never wanted to put it down for a second.

u/Spats_McGee · 1 pointr/Bitcoin

ZOMG YOU HAVE TO READ THIS BOOK:

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

The plot is essentially what you're describing (but without the blockchain); a computer virus that is able to utilize a distributed command & control network and respond to real-world events.

u/jigglebilly · 1 pointr/Bitcoin
u/hst_samurai · 1 pointr/IAmA

Have your read Daniel Saurez's Daemon?

If so, do you think we could mistake a 'higher' intelligence for a rogue computer 'virus/system'?

u/anim8 · 1 pointr/AskReddit

I just read Daemon, and the sequel Freedom(TM) by daniel Suarez and they are both excellent. The deal with corporate control in the government and the future of the internet. It also makes heroes out of WoW players.

u/SpinningPissingRabbi · 1 pointr/technology

Sounds like some malware writer has had a good read of Daniel Suarez's Daemon (http://www.amazon.com/Daemon-Daniel-Suarez/dp/0451228731).

So the thing is horrendously complicated, hides in other components firmware (network card was mentioned) and can communicate over ultrasound.

But what can/will it do? How prevalent is it and what's it for? Apart from sending shivers down my spine of course.

u/Cagn · 1 pointr/booksuggestions

Daemon and it's sequel Freedom by Daniel Suarez would probably be a good recommendation if you like those two books you mentioned in the title.

u/didyouwoof · 1 pointr/booksuggestions

I just finished Daemon and Freedom (TM), a two-part series by Daniel Suarez. I liked them a lot, and I suspect I would have liked them even more if I were into online gaming.

u/metamirror · 1 pointr/Monero

DAEMON
by Daniel Suarez
Link: http://amzn.com/0451228731

u/DkorpiBSME · 1 pointr/engineering

Yeah, it was a little unsettling. No one really said anything about it. His family came and took his toolbox. They found a gun in one of the drawers, but it wasn't a bad thing. The shop was in a rough part of town and he worked late at night machining precious metals if you know what I mean. The guy was a human CNC machine. It was cool to have such an experienced guy showing me what to do. Invaluable machining experience. That itself led to me landing various jobs.

If you end up making something for this guy, you should make a post about it. A cool book that I really like that might help you with other ideas is this:

http://www.amazon.com/Make-Electronics-Discovery-Charles-Platt/dp/0596153740/ref=sr_1_1?ie=UTF8&qid=1395172215&sr=8-1&keywords=make+electronics

It's written for engineering level students. I have the book myself and I like to build stuff at home when I'm not working.

u/DoomParrot · 1 pointr/electronics

Consider Make Electronics.

It is a full color book with a magazine-like layout that he should find appealing. It walks you through projects from very basic in the beginning to more advanced toward the end. There are also a couple component kits you can buy from Radio Shack or online from makershed.com. Those kits will save a lot of hassle by providing all the parts needed to do the projects.

u/apt2b · 1 pointr/IWantToLearn

I'm in my junior year of highschool, myself, and I know that some extremely basic circuitry is going to pop up later this year in physics, but I don't think it will sate my appetite at all. And you're right, it's the practical part of it that interests me, which is why I haven't bought any kits already - it seems that the entry kits are all things that I have no use for, like pocket VU meters and infrared tripwires, but I guess I'll have to get over that. I'm not a fan of For Dummies books, so I think I'll look into this one, which I found in one of the threads in videoj's link.

Thanks.

u/LisaNeedsBraces666 · 1 pointr/AskMen

There's https://www.adafruit.com/ for DIY kits and what have you. A good book is https://www.amazon.com/Make-Electronics-Discovery-Charles-Platt/dp/0596153740 - You can also buy a kit specific to the book that has all the components needed for the projects.

u/Bugos19 · 1 pointr/electronics
  • I can't recommend a better book than this one.
  • Get this resistor kit. Seriously, I bought one of these a year ago and I've never once had to buy more resistors.
  • You're going to need a capacitor set like this one.
  • You're also going to need a breadboard.
  • Make a trip to Maplin and get an assortment pack of LEDs and a few switches. Trust me, this will make your life a tons easier when it comes to making proof of concept or test circuits. And they make circuitry more interactive and fun!
  • Lastly, get a cheap multimeter. You can get one at Maplin or somewhere similar for like <15 pounds.

    Sorry about the links, I'm in the US so the prices will be in USD but that shouldn't be a problem. I really hope you find this hobby as intriguing as I do, I started a year ago making little flashlights and what-not and now I'm making motion detectors and all kinds of cool gadgets. If you'd like some guidance or help, don't think twice about PMing me! Best of luck.
u/F2a · 1 pointr/electronics
u/JosephFaolan · 1 pointr/schizophrenia

I read a lot too, but finding new subjects can be fun.

Last year, I got into locksport (recreational lock picking) because I realized I knew almost nothing about locks.

I am starting studying electronics because I can build computers, program and use them, and hack, but I knew very little about the underlying electronics. And considering that electronics are used in so many different things, I think it is worth having a practical understanding of it all.

I am using this book: http://www.amazon.com/Make-Electronics-Discovery-Charles-Platt/dp/0596153740

It seems to be a well regarded source for beginners. RadioShack had the kit which had all the stuff for the first chapters (the book actually goes into several areas to expose the reader to what comes next...the kit does not come with the parts for that). It was on sale and I had a coupon which expired this week.

u/nothingWolf · 1 pointr/diyelectronics

Kits are fun but another suggestion would be to grab the Charles Platt book " make: electronics, learning by discovery" and follow the activities there. I think the book has suggestions on where to buy components too.


Amazon link https://www.amazon.com/Make-Electronics-Discovery-Charles-Platt/dp/0596153740

u/angstybagels · 1 pointr/raspberry_pi

https://www.amazon.com/Make-Electronics-Discovery-Charles-Platt/dp/0596153740

Someone gifted me this book a few years ago and I highly recommend it for getting into basic electronic fun. Doesn't really get into programming (using an arduino) until the end but it is all still applicable to things you might design around a raspberry pi or whatever microcontroller you want to use.

u/i_make_song · 1 pointr/audioengineering

Do you have any background knowledge in electronics? Because I would seriously start there.

I realize you are an adult, but Make: Electronics (Learning by Discovery) was a really great book for me (an adult). It gives you a good foundations in electronics and has fun projects as well.

Make: Analog Synthesizers was particularly fun for me.

Any interest in either of those books? They're both great starting points.

u/Beta_UserName · 1 pointr/arduino

Start with this book. That'll help you spend your money smartly as well as get fundamentals down.

u/TheConsciousness · 1 pointr/arduino
u/sn76477 · 1 pointr/IWantToLearn

This looks like a good book

http://www.amazon.com/MAKE-Electronics-Learning-Through-Discovery/dp/0596153740/ref=sr_1_3?ie=UTF8&s=books&qid=1279769926&sr=8-3

This IS a good book but deals with advanced theories.


http://www.amazon.com/Art-Electronics-Paul-Horowitz/dp/0521370957/ref=sr_1_16?ie=UTF8&s=books&qid=1279769926&sr=8-16


And this looks pretty good.

http://www.amazon.com/Circuitbuilding-Yourself-Dummies-Ward-Silver/dp/0470173424/ref=sr_1_21?ie=UTF8&s=books&qid=1279769941&sr=8-21


Go to the book store, pick up some books. Go the the library and see what they have. Pick up old radios and junk off of the street take them home and pull them apart but be careful of the capacitors, if you dont know what a capacitor is then read one of the above books.

Look on craigslist for free electronics and start taking them apart. Be careful of anything that uses Alternating current, anything that plugs into a wall deals with large voltages so be sure to start small.

u/Chris_Gammell · 1 pointr/electronics

A lot of the Mims books are a good start, such as this one: Getting Started In Electronics

Also in the same vein, the "MAKE:Electronics" book by Charles Platt

My suggestion is to get started building as quickly as possible. That's the key. Also, if you want to hear more about electronics, I can selfishly recommend my podcast, The Amp Hour

u/jimtheflow · 1 pointr/ccent

This is the newest book by Todd Lammle. I just got it in the mail and I am on Ch.2. It's really good so far. Whichever book you decide on, ensure that it was published after August 2016.

u/ildrazi · 1 pointr/ccna
u/CBRjack · 1 pointr/ccna
u/Clockwork16 · 1 pointr/ccna

Get either the book by Todd Lammle or the book by Wendell Odom. Either of these will suit. I also recommend some video series. CBT Nuggets or Chris Bryant are well received.

Note: The Odom book I linked is for CCCENT or ICND1 only, while the Lammle book is for both. Odom has a book for ICND2 also.

u/baronobeefdip2 · 1 pointr/ccna

Lammle is an engaging writer, while the ODOM books come with practice tests and is the official Cisco training guide. Lammle will put it in comprehensible terms for you because Odom comes off as robotic and emotionless, text books and training manuals are notorious for having technical writing style in them (The form of writing where you try to leave all human elements out of writing, which means excluding opinions, real world anecdotes etc, just get to the point in the most intricately written way as they can. I hate that textbook writers are highly and strictly encouraged to write this way since it makes the learning process much more difficult). Reardless, it's best to have multiple sources. Also if I were you, I would get the complete set for the Lammle side of things. You'll spend less money when you don't buy them all individually since everything is there. As for the Odom side, you're stuck with buying all of his books if you want the practice exams and his bland writing style.

Remember one more thing, Youtube is your friend.

u/baumboozle · 1 pointr/ECU

I can help you out. I am a recent graduate just graduate this past spring from the Information and Computer Technology program with concentration in security. What you want to major in really depends on what you are most interested in. If you like coding and writing up programs then Computer Science is for you. If you don't like coding that much as want to focus on areas such as setting up firewalls, networking, where you subnet and assign computer's with ip addresses than yeah go with the Info. Comp. Tech. With the ICTN program it will prepare you for a industry certifications such as CCNA , Security +, CCNP, CCNA- security, RHCSA, RHCE. Do a google search on these certifications and look at the topics covered within the certifcation exams especially the CCNA. The cisco classes the prepare you for the CCNA are the hardest classes and are the washout classes. Where after people taking those that dropout of the program. If you seriously want to do the Info. Comp, Tech, then google the CCNA study guide and look at such content. Or click on this link
https://www.amazon.com/Routing-Switching-Complete-Study-Guide/dp/1119288282/ref=sr_1_4?ie=UTF8&qid=1495502742&sr=8-4&keywords=cisco+ccna

This is the type of stuff that you will be going over when you first start taking ICTN classes. The classes in the program are not hard as long as you put a good amount of work in. It really requires a lot of dedication and understanding. Because there are gonna be days you are going to be having problems in labs and its gonna force you to troubleshoot and think outside the box. The ccna certification itself is required if you wanna stay in the networking track. The certification itself is diffcult but do able. I myself do not have CCNA but have comptia Security+ .

Now i personally can't speak for computer science but if you are good at coding in such things such as Java, python or other programming languages then i would recommend Comp. Sci. Go to code academy google it gives you code lessons and see if you like that.

I can't really tell you want to do. But personally i would choose Info. Comp. Tech. over comp sci any day.

If you have any questions just PM

u/Halna_Halex · 1 pointr/ccna

Can I pick your brain again? For learning resources I was thinking of Pluralsight (used them for my MCSA Server 2012 and loves them) and Todd Lammle's book:
https://amazon.com/Routing-Switching-Complete-Study-Guide/dp/1119288282/ref=sr_1_1?ie=UTF8&qid=1491569673&sr=8-1&keywords=ccna

u/ILoveTechnology2017 · 1 pointr/ITCareerQuestions

I took the four netacad Cisco Learning Academy classes over the course of four semesters at a community college and that helped give me a basis. I also read all of Wendell Odom's CCNA book and then I read Todd Lammle's CCNA book as well. Odom's book is dryer but he explains it in more depth. Lammle's book is easier to read, so I might read it first to get a good overview and then read Odom's book for a stronger foundation.

I also had homelab with 2 Cisco 2950 switches and 2 Cisco 1841 routers to get use to physically configuring the devices. I also used Packet Tracer extensively.

I would get these books and read them while doing lots of Packet Tracer labs. That should prepare you for the tests. I would also do the CCENT first and then the ICND2 to fully get your CCNA.
https://www.amazon.com/Routing-Switching-Complete-Study-Guide/dp/1119288282/ref=sr_1_1?ie=UTF8&qid=1486146136&sr=8-1&keywords=ccna

https://www.amazon.com/Routing-Switching-200-125-Official-Library/dp/1587205815/ref=sr_1_2?ie=UTF8&qid=1486146136&sr=8-2&keywords=ccna

u/mbw290 · 1 pointr/ccna

I took a boot camp and used this book

CCNA Routing and Switching Complete Study Guide: Exam 100-105, Exam 200-105, Exam 200-125 https://www.amazon.com/dp/1119288282/ref=cm_sw_r_cp_apa_i_R6XDCb1BYWZY0

u/trboom · 1 pointr/anime_irl

Essentially yes. You will have to pay for the test though, it's how they make money. I would also recommend acquiring a book specifically for the test or buying a video set online.

There are also the Comptia certs which tend to be more entry level. Professor Messer has some decent free courses on the Comptia certs A+, Network+, and Security+.

u/s1nsp4wn · 1 pointr/networking

I recommend Todd Lammle's books in addition to packet-tracer and gns3 for labbing. There are other routes you can look into for all of this stuff without spending an arm and a leg, but Todd made the most sense to me when I took it years ago. This is the newer version of course:

https://www.amazon.com/Routing-Switching-Complete-Study-Guide/dp/1119288282/ref=sr_1_1?s=books&ie=UTF8&qid=1522267711&sr=1-1&refinements=p_lbr_one_browse-bin%3ATodd+Lammle

u/Field_of_Celebrant · 1 pointr/ccna

I actually have this one. The first half is geared toward the CCENT, and the second half is the CCNA.

u/plotney · 1 pointr/ccent

The new exam is 100-105, and it's the icnd1 v3. Anything published after August 2016 should be up to date, but double check before ordering. The book I'm looking at getting is this.

u/cflores85 · 1 pointr/ccna

I got [Lammle's book](CCNA Routing and Switching Complete Study Guide: Exam 100-105, https://www.amazon.ca/dp/1119288282/ref=cm_sw_r_cp_api_Ma0xybFM9NW38) this past week so I'm glad to start that one. Everyone recommends Odom's book too.

u/All_Your_Base · 1 pointr/whatstheword

I went to amazon books and searched CCNA, and selected the first entry:

Description from the page (emphasis mine):

CCNA Routing and Switching Complete Study Guide, 2nd Edition is your comprehensive review for the CCNA exams. Written by the leading authority on networking technology, this guide covers 100% of all objectives for the latest ICND1, ICND2, and CCNA Composite exams. Hands-on labs help you gain experience in critical procedures and practices, and the network simulator provides a realistic lab environment so you can practice at your own pace. Gain access to the Sybex online learning environment, featuring a robust set of study tools including: practice questions, flashcards, video instruction, and an extensive glossary of terms to help you better prepare for exam day. The pre-assessment test helps you prioritize your study time, and bonus practice exams allow you to test your understanding. Need more practice? Get 20% off a year subscription and free access to premium Cisco Labs—providing hands-on, real-world experience using Cisco Routers, Switches, and Firewalls.

There may be a better or more technical term. I simply replied with what I have always called them, and heard them called by others in the profession. Granted it's networking rather than programming, but I did a quick search on what I what used to, sorry.

u/MrFinchUK · 1 pointr/ccna

I have CCNA Routing and Switching Complete Study Guide: Exam 100-105, Exam 200-105, Exam 200-125 by Lammle and am using it to accompany the ICND1 course I am doing this week.

Sorry, I couldn't link it on Amazon.don't know if this will work:

https://www.amazon.co.uk/dp/1119288282/ref=cm_sw_r_cp_api_mazUzbX3A7BAR

u/zukolfe · 1 pointr/ccna

3 months is reasonable to study and pass the CCENT if you lots of free time. I studied for the CCENT over 4 months only doing a couple hours a day - if I was less lazy I could have done it in probably 2 months coming from probably similar experience as you.

this book is by todd lammle - highly recommended. will cover everything you need to know for the CCENT. also check out the free packet tracer tool from CISCO (you will need it for the guided labs in this book). I would also recommend you use the boson exam sim practice tests. they are very similar in format and wording to the actual exam. Once you get to the chapter about subnetting, check out this website for practice.

If you are looking to get into cybersecurity, understanding how networks work on a deeper level than "home network" will be required. Many entry level security jobs include monitoring network traffic for security issues... can't do that if you have no clue what you're looking at right? This will probably also make your college courses much easier.

The tests are scheduled at the pearson vue website for you to take whenever you want.

u/HyperKiwi · 1 pointr/ccna

This is not impossible to but, nearly. Some may object and there are example of people passing in less time. However, they usually have a background in networking, or advanced mathematics.

Get Todd Lammel's book.

People have read only this and passed. That would never work for me. Use it with other resources like CBT Nuggets.