Reddit mentions: The best databases & big data books

We found 1,990 Reddit comments discussing the best databases & big data books. We ran sentiment analysis on each of these comments to determine how redditors feel about different products. We found 541 products and ranked them based on the amount of positive reactions they received. Here are the top 20.

1. Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability (3rd Edition) (Voices That Matter)

    Features:
  • New Riders Publishing
Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability (3rd Edition) (Voices That Matter)
Specs:
Height8.95 Inches
Length6.95 Inches
Number of items1
Weight0.8377565956 Pounds
Width0.7 Inches
▼ Read Reddit mentions

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

    Features:
  • Addison-Wesley Professional
Practical Object-Oriented Design in Ruby: An Agile Primer (Addison-Wesley Professional Ruby Series)
Specs:
Height9 inches
Length7 inches
Number of items1
Weight1.19931470528 Pounds
Width0.8 inches
▼ Read Reddit mentions

3. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

    Features:
  • Wiley
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Specs:
Height9.17321 inches
Length7.00786 inches
Number of items1
Weight2.15 Pounds
Width1.2389739 inches
▼ Read Reddit mentions

4. Purely Functional Data Structures

    Features:
  • Used Book in Good Condition
Purely Functional Data Structures
Specs:
Height9 Inches
Length6 Inches
Number of items1
Release dateJanuary 2008
Weight0.771617917 Pounds
Width0.58 Inches
▼ Read Reddit mentions

5. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython

    Features:
  • O'Reilly Media
Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython
Specs:
Height9.19 Inches
Length7 Inches
Number of items1
Weight1.7 Pounds
Width0.9 Inches
▼ Read Reddit mentions

6. PHP and MySQL Web Development (4th Edition)

    Features:
  • CD-ROM included with PDF version of text.
PHP and MySQL Web Development (4th Edition)
Specs:
Height9.25 Inches
Length7.25 Inches
Number of items1
Weight3.47448524912 Pounds
Width2.25 Inches
▼ Read Reddit mentions

7. Data Science from Scratch: First Principles with Python

    Features:
  • Oreilly Associates Inc
Data Science from Scratch: First Principles with Python
Specs:
Height9.17321 Inches
Length7.00786 Inches
Number of items1
Weight1.322773572 Pounds
Width0.688975 Inches
▼ Read Reddit mentions

8. Dataclysm: Love, Sex, Race, and Identity--What Our Online Lives Tell Us about Our Offline Selves

    Features:
  • Broadway Books
Dataclysm: Love, Sex, Race, and Identity--What Our Online Lives Tell Us about Our Offline Selves
Specs:
ColorNavy
Height7.95 Inches
Length5.15 Inches
Number of items1
Release dateSeptember 2015
Weight0.8 Pounds
Width0.96 Inches
▼ Read Reddit mentions

9. SQL in 10 Minutes, Sams Teach Yourself (4th Edition)

    Features:
  • Sams Publishing
SQL in 10 Minutes, Sams Teach Yourself (4th Edition)
Specs:
Height8.2 Inches
Length5.4 Inches
Number of items1
Weight0.8377565956 Pounds
Width0.8 Inches
▼ Read Reddit mentions

10. Java: The Complete Reference, Ninth Edition

    Features:
  • McGraw-Hill Osborne Media
Java: The Complete Reference, Ninth Edition
Specs:
Height9.25 Inches
Length1.75 Inches
Number of items1
Weight4.100157148676 Pounds
Width7.75 Inches
▼ Read Reddit mentions

12. Head First PHP & MySQL: A Brain-Friendly Guide

    Features:
  • O Reilly Media
Head First PHP & MySQL: A Brain-Friendly Guide
Specs:
Height9.25 Inches
Length8 Inches
Number of items1
Weight3.35 Pounds
Width1.8 Inches
▼ Read Reddit mentions

13. Head First SQL: Your Brain on SQL -- A Learner's Guide

    Features:
  • O Reilly Media
Head First SQL: Your Brain on SQL -- A Learner's Guide
Specs:
Height9.25 Inches
Length8 Inches
Number of items1
Weight2.45 Pounds
Width1.23 Inches
▼ Read Reddit mentions

14. A New Kind of Science

Used Book in Good Condition
A New Kind of Science
Specs:
Height9.7 inches
Length8.14 inches
Number of items1
Release dateMay 2002
Weight5.56887673812 Pounds
Width2.47 inches
▼ Read Reddit mentions

15. The Well-Grounded Rubyist: Covers Ruby 1.9.1

    Features:
  • Used Book in Good Condition
The Well-Grounded Rubyist: Covers Ruby 1.9.1
Specs:
Height9.25 Inches
Length7.38 Inches
Number of items1
Weight1.93565866036 Pounds
Width1.04 Inches
▼ Read Reddit mentions

16. T-SQL Fundamentals

    Features:
  • Microsoft Press
T-SQL Fundamentals
Specs:
Height9 Inches
Length7.38 Inches
Number of items1
Release dateAugust 2016
Weight1.6755131912 Pounds
Width1.03 Inches
▼ Read Reddit mentions

17. Database Systems: The Complete Book (2nd Edition)

Database Systems: The Complete Book (2nd Edition)
Specs:
Height9.4 Inches
Length7.2 Inches
Number of items1
Weight4.1005980732 Pounds
Width1.8 Inches
▼ Read Reddit mentions

18. Learning PHP, MySQL, and Javascript (Animal Guide)

Used Book in Good Condition
Learning PHP, MySQL, and Javascript (Animal Guide)
Specs:
Height9.19 Inches
Length7 Inches
Number of items1
Weight1.9 Pounds
Width1.1 Inches
▼ Read Reddit mentions

19. Visualize This: The FlowingData Guide to Design, Visualization, and Statistics

    Features:
  • John Wiley Sons
Visualize This: The FlowingData Guide to Design, Visualization, and Statistics
Specs:
Height8.999982 Inches
Length7.299198 Inches
Number of items1
Weight1.71078715312 Pounds
Width0.700786 Inches
▼ Read Reddit mentions

20. Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics

    Features:
  • O REILLY
Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics
Specs:
Height9.75 Inches
Length8 Inches
Number of items1
Weight3 Pounds
Width1.33 Inches
▼ Read Reddit mentions

🎓 Reddit experts on databases & big data books

The comments and opinions expressed on this page are written exclusively by redditors. To provide you with the most relevant data, we sourced opinions from the most knowledgeable Reddit users based the total number of upvotes and downvotes received across comments on subreddits where databases & big data books are discussed. For your reference and for the sake of transparency, here are the specialists whose opinions mattered the most in our ranking.
Total score: 504
Number of comments: 6
Relevant subreddits: 1
Total score: 280
Number of comments: 32
Relevant subreddits: 11
Total score: 39
Number of comments: 19
Relevant subreddits: 3
Total score: 37
Number of comments: 14
Relevant subreddits: 6
Total score: 32
Number of comments: 7
Relevant subreddits: 2
Total score: 27
Number of comments: 13
Relevant subreddits: 5
Total score: 15
Number of comments: 12
Relevant subreddits: 4
Total score: 10
Number of comments: 8
Relevant subreddits: 4
Total score: 10
Number of comments: 7
Relevant subreddits: 3
Total score: 10
Number of comments: 7
Relevant subreddits: 1

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

Shuffle: random products popular on Reddit

Top Reddit comments about Databases & Big Data:

u/zaclacgit · 1 pointr/rubyonrails

Answers to follow, but try to make sure that you're not being overzealous in your attempts to learn Ruby. Questions about general code methodology are good, but in order to really understand and apply them you'll have to have a pretty solid grasp on the basics.

Despite how it may seem, you might be making it harder on yourself by trying to "skip ahead" and start applying later concepts early on.

There's a reason the first program most people write doesn't involve creating a Person class that responds to greet_with_hello(world).

If you've simply finished the Rails tutorial and want some Ruby experience, I'd recommend giving The Well-Grounded Rubyist a try. Many people in your position have done very well by it, and it will teach you what you need to know as you need to know it.

But as for your actual questions.

>What is the best resource to learn general code methodology and syntax, language agnostic. I'm picking things up what I would consider to be pretty quickly, but I know being able to learn about general themes and syntax of coding would help immensely.

Syntax is inherently tied to the language you're using. While there are similarities between some languages, there's no general "Guide to Syntax" that you would need to worry about. Happily, many people find that syntax is the easiest thing to pick up while learning an additional language. The general concepts are what you learn the first time, and then you learn "How do you do loops in C++ again?"

So don't worry about syntax.

However, Ruby does have the Ruby Style Guide that will answer questions about how to make your code look. As you'll find is the case with many things in Ruby, the style guide is not written in stone. It's just a good idea, most of the time.

With that out of the way, we can move on to things that are not language specific. Well, sort of.

Data Structures, Algorithms, and Design Patterns are established ways of doing or handling certain tasks. In theory/abstract, these are language agnostic. In practice, application or use can vary between languages.

There are a handful of decent books that will instruct you on advanced data structures and algorithms. I would visit /r/learnprogramming and peruse their sidebar for recommendations. That being said, I have yet to find a book written with examples in Ruby though. If you're completely unfamiliar with other languages then you might want to find something that deals in some sort of pseudocode.

It might be difficult to translate the concepts that are presented in pseudocode (or whatever language the book chooses) into Ruby. Especially if you are not decently comfortable with solving problems in Ruby, and thinking about problems in Ruby.

However, there are some books out there on how to design things in Ruby. They happen to be really good books too. I've honestly lost count of how many times I've recommended them, let alone how many time I've seen them recommended.

Practical Object-Oriented Design in Ruby will essentially guide you through learning what should and should not go into an object, and when to make those decisions. It is an eminently readable book, and conveys the information in concise and graspable fashion.

But if you're not in a position where you're really comfortable with the idea of what Objects are, and how you create/use them in Ruby, this book might be best saved for after you get a handle on the basics of that stuff.

In fact, most people seem to get the most benefit out of this book after they should have already read (and heeded) it. Sort of a situation where the right way makes the most sense only after you've been doing it the wrong way.

Secondly, Design Patterns in Ruby will show you how several common ways of doing things are utilized in Ruby. Personally, I read POODR before Design Patterns in Ruby, but I'm not aware of any reason read them in any particular order.

I'll reiterate that both of these books have general design concepts inside of them, but that they are dyed-in-the-wool Ruby books. You will absolutely learn things that you can take elsewhere, but it won't come to you in a purely abstracted manner.

>Is there a list of all the predefined calls in Ruby that I can find somewhere. Occasionally I write to do something only to find out that I'm breaking down a process that is shortened already. I'm sure these are commonplace for people who have coding experience before starting Ruby, but that's not a luxury that I'm afforded.

Absolutely! It's at Ruby Docs.

Don't get yourself down on this one. In this very particular case you might be a little better off than someone that has a bunch of programming experience in other languages.

Why you ask?

Lots of people aren't necessarily expecting the ease in which you can cause things to happen in Ruby with just a few method calls. They are waaaaaaaaaaaaaaay more used to breaking things down into smaller problems as a matter of necessity than you are. So congrats! Fewer habits to break there!

You can actually just google "ruby docs class-name" for whatever class you're working with to see what methods are available to you out of the box and what those methods do.

As a recommendation, I'd get pretty familiar with the module Enumerable, and check out the Array class. You'll end up using those a lot.

Like a whole lot.

In case you're curious, the awesomeness found in Enumerable is usually where people with prior programming experience tend to make things harder on themselves, because they're use to things being harder on them. A one line split, sort, and join is just a thing of beauty.

>Lastly if there was anything that really helped you that I didn't mention I'm open to any suggestions really.

In all honesty, what really helped me the most in learning Ruby was getting really comfortable with the syntax, and then learning what to do after that.

RubyMonk is probably one of the best places I've used to get a guide through Ruby, even advanced topics.

CodeWars is a good way to give your mind a nice stretch and workout. You'll just solve little problems that force you to make sure you know how to use Ruby when you need it.

After you're comfortable with the language, start making some small projects.

Games are usually a good first start. They have clearly defined rules and orders of events, as well as lots of things that are easy to recognize as objects.

Black Jack, Tic-Tac-Toe, MasterMind, BattleShip, and Chess are all pretty good projects to work on, and maybe in that order too.

Somewhere around then end of Tic-Tac-Toe or MasterMind I'd probably crack open POODR and giving it a read through. The value of all the lessons might not make complete sense at first, but it's that way with everybody. Just trust the author and go along with it.

Lastly, and I can not stress this enough, learn how to write and use tests for your code.

I know. It seems like tests are a waste of time. You're writing them before you're even really writing the code. On top of that, you already know how you want to do the thing you want to do, and it'll work!

Trust me. If the thing you're making is at all complicated, write some tests.

If you're ever going to want to change anything about it, write tests for it.

It will save you an incredible amount of time when you start breaking things, and will also give you the confidence that things probably aren't broken after you've fixed them.

Also, feel free to ignore everything I said about not jumping too far ahead. People learn in different ways, and desire to learn in different ways. If you feel like learning more advanced concepts now is going to be way more interesting for you, then you should totally do so.

u/tpintsch · 2 pointsr/datascience

Hello, I am an undergrad student. I am taking a Data Science course this semester. It's the first time the course has ever been run so it's a bit disorganized but I am very excited about this field and I have learned a lot on my own.I have read 3 Data Science books that are all fantastic and are suited to very different types of classes. I'd like to share my experience and book recommendations with you.

Target - 200 level Business/Marketing or Science departments without a programming/math focus. 
Textbook - Data Science for Business https://www.amazon.com/gp/product/1449361323/ref=ya_st_dp_summary
My Comments - This book provides a good overview of Data Science concepts with a focus on business related analysis. There is very little math or programming instruction which makes this ideal for students who would benefit from an understanding of Data Science but do not have math/cs experience. 
Pre-Reqs - None.

Target - 200 level Math/Cs or Physics/Engineering departments.
Textbook -Data Mining: Practical Machine Learning Tools and Techniques https://www.amazon.com/gp/aw/d/0123748569/ref=pd_aw_sim_14_3?ie=UTF8&dpID=6122EOEQhOL&dpSrc=sims&preST=_AC_UL100_SR100%2C100_&refRID=YPZ70F6SKHCE7BBFTN3H
My comments: This book is more in depth than my first recommendation. It focuses on math and computer science approaches with machine learning applications. There are many opportunities for projects from this book. The biggest strength is the instruction on the open source workbench Weka. As an instructor you can easily demonstrate data cleaning,  analysis,  visualization,  machine learning, decision trees, and linear regression. The GUI makes it easy for students to jump right into playing with data in a meaningful way. They won't struggle with knowledge gaps in coding and statistics. Weka isn't used in the industry as far as I can tell, it also fails on large data sets. However, for an Intro to Data Science without many pre-reqs this would be my choice.
Pre-Req - Basic Statistics,  Computer Science 1 or Computer Applications.

Target - 300/400 level Math/Cs majors
Textbook - Data Science from Scratch: First Principles with Python
http://www.amazon.com/Data-Science-Scratch-Principles-Python/dp/149190142X
My comments: I am infatuated with this book. It delights me. I love math, and am quickly becoming enamored by computer science as well. This is the book I wish we used for my class. It quickly moves through some math and Python review into a thorough but captivating treatment of all things data science. If your goal is to prepare students for careers in Data Science this book is my top pick.
Pre-Reqs - Computer Science 1 and 2 (hopefully using Python as the language), Linear Algebra, Statistics (basic will do,  advanced preferred), and Calculus.

Additional suggestions:
Look into using Tableau for visualization.  It's free for students, easy to get started with, and a popular tool. I like to use it for casual analysis and pictures for my presentations. 

Kaggle is a wonderful resource and you may even be able to have your class participate in projects on this website.

Quantified Self is another great resource. http://quantifiedself.com
One of my assignments that's a semester long project was to collect data I've created and analyze it. I'm using Sleep as Android to track my sleep patterns all semester and will be giving a presentation on the analysis. The Quantified Self website has active forums and a plethora of good ideas on personal data analytics.  It's been a really fun and fantastic learning experience so far.

As far as flow? Introduce visualization from the start before wrangling and analysis.  Show or share videos of exciting Data Science presentations. Once your students have their curiosity sparked and have played around in Tableau or Weka then start in on the practicalities of really working with the data. To be honest, your example data sets are going to be pretty clean, small,  and easy to work with. Wrangling won't really be necessary unless you are teaching advanced Data Science/Big Data techniques. You should focus more on Data Mining. The books I recommended are very easy to cover in a semester, I would suggest that you model your course outline according to the book. Good luck!

u/FrontpageWatch · 1 pointr/longtail

>Hi /r/learnprogramming. I started programming 6 months ago, going from zero programming knowledge to having my pick at several NYC start-up web developer job offers. I got started by reading /r/learnprogramming, but eventually began building projects, participating in open source, reading books, and pair programming with other developers.
>
>To express my gratitude for this community and the impact it’s had on my path to becoming a developer, I’d like to share with you the steps I took.
>
> 
>
>1. HTML/CSS
>
>Resources:
>
> W3Schools
>
HTML/CSS by Jon Duckett
>
>I had a head start with HTML and CSS because I worked as a product designer in college. Jon Duckett's book was a great resource for the fundamentals. To practice, I worked on my personal website’s HTML and CSS.
>
> 
>
>2. JavaScript / jQuery / AJAX
>
>Resources: Eloquent JavaScript
>
>This book is very good for beginners, as it teaches JavaScript step by step, from basic syntax, all the way to higher-order functions, object orientation, algorithms, and jQuery. It's very clear and well written; I never had to look anything up on Google while reading. It also gave me many ideas for projects to build for my portfolio.
>
>When you want to animate elements on your webpage, jQuery is the tool to use. I also learned this by reading StackOverflow answers and the jQuery documentation. You don't have to learn this before you get a web page up on the Internet, but you will need it eventually. AJAX lets you make asynchronous web calls, which allows you to change the DOM (the elements on the web page) without refreshing the page, allowing for a smoother user experience.
>
>To sharpen my JavaScript knowledge, I added animations to my website, and made a table whose cells change to a randomly generated color when clicked. I eventually refactored the hex code generation to a Ruby gem, then used AJAX calls to retrieve the data from the server — in a Ruby on Rails app.
>
> 
>
>3. Git
>
>Resources:
>
> StackOverflow
>
Pair programming
>
>Git is how developers save and share their work, and collaborate with each other.
>
>While Git is a very complex tool, there are only four basic commands you really need to be effective from the start. "status", "add", "commit", "push". These four commands will be like your arms and legs because you type them tens of times everyday. If you find yourself needing to do something fancier, then StackOverflow likely has the answer.
>
>Since you can’t really practice Git on its own, the only way to become comfortable with it is by incorporating it into your development workflow.
>
> 
>
>4. Ruby
>
>Learn to Program by Chris Pine
>
>This book is structured like Eloquent JavaScript, except for Ruby. It was a great introduction to the Ruby language because the author wrote the book for total beginners.
>
>The Well Grounded Rubyist by David A. Black
>
>This book builds upon your basic Ruby knowledge. It's gives a very in-depth look at Ruby's core API, including syntactic sugar, metaprogramming, and other Rubyisms.
>
>To hone in on my Ruby skills, I worked on a number of projects. I started with easy problems on Project Euler, then worked my way up to solving harder ones, like Hangman, 24, and Sudoku.
>
> 
>
>5. Twitter Bootstrap
>
>This is used to quickly stylize web pages. I learned by watching Youtube videos, reading other peoples’ code on GitHub, and the official Bootstrap documentation. This is a great tool that everyone web developer needs to learn to use.
>
>Once I read a bit about Bootstrap, I added it to my own personal website to get some practice and to make it look better.
>
> 
>
>6. SQL
>
>Resources: SQLzoo.com
>
>SQLzoo is great because it encourages learning by doing.
>
>I went light on SQL because I knew about ActiveRecord, a tool available in Rails that lets us query our database with plain old Ruby.
>
> 
>
>7. Ruby on Rails + Testing
>
>Resources:
>
> One Month Rails
>
Rails 4 in Action
>* Everyday Rails Testing with RSpec
>
>One Month Rails was the perfect introduction to Ruby on Rails because it doesn’t go deeply into technical details. I think it’s designed for entrepreneurs who just want to get an idea off the ground quickly. It made the content in Rails 4 in Action feel familiar.
>
>Rails 4 in action, although a bit frustrating at times because it’s outdated, walks readers through a test-driven approach to the building of a ticket management app.
>
>After reading as much of this book as I could, a friend of mine helped me revisit all of my old Ruby applications and test them.
>
>Although these resources were immensely helpful, I think having the mentorship of another developer made a greater difference in my learning. I had a friend who pair-programmed with me daily, reviewed my code, and showed me how to think like a software developer.
>
>If you're interested in learning more, you can visit Ruby on Richards and sign up for the free mailing list where I'm sharing a more detailed walkthrough of the path to becoming a professional web developer. There are also things you pay for, but the in-depth guide is free.
>
>Cheers.

u/nudelete · 1 pointr/Nudelete

>Hi /r/learnprogramming. I started programming 6 months ago, going from zero programming knowledge to having my pick at several NYC start-up web developer job offers. I got started by reading /r/learnprogramming, but eventually began building projects, participating in open source, reading books, and pair programming with other developers.
>
>To express my gratitude for this community and the impact it’s had on my path to becoming a developer, I’d like to share with you the steps I took.
>
> 
>
>1. HTML/CSS
>
>Resources:
>
> W3Schools
>
HTML/CSS by Jon Duckett
>
>I had a head start with HTML and CSS because I worked as a product designer in college. Jon Duckett's book was a great resource for the fundamentals. To practice, I worked on my personal website’s HTML and CSS.
>
> 
>
>2. JavaScript / jQuery / AJAX
>
>Resources: Eloquent JavaScript
>
>This book is very good for beginners, as it teaches JavaScript step by step, from basic syntax, all the way to higher-order functions, object orientation, algorithms, and jQuery. It's very clear and well written; I never had to look anything up on Google while reading. It also gave me many ideas for projects to build for my portfolio.
>
>When you want to animate elements on your webpage, jQuery is the tool to use. I also learned this by reading StackOverflow answers and the jQuery documentation. You don't have to learn this before you get a web page up on the Internet, but you will need it eventually. AJAX lets you make asynchronous web calls, which allows you to change the DOM (the elements on the web page) without refreshing the page, allowing for a smoother user experience.
>
>To sharpen my JavaScript knowledge, I added animations to my website, and made a table whose cells change to a randomly generated color when clicked. I eventually refactored the hex code generation to a Ruby gem, then used AJAX calls to retrieve the data from the server — in a Ruby on Rails app.
>
> 
>
>3. Git
>
>Resources:
>
> StackOverflow
>
Pair programming
>
>Git is how developers save and share their work, and collaborate with each other.
>
>While Git is a very complex tool, there are only four basic commands you really need to be effective from the start. "status", "add", "commit", "push". These four commands will be like your arms and legs because you type them tens of times everyday. If you find yourself needing to do something fancier, then StackOverflow likely has the answer.
>
>Since you can’t really practice Git on its own, the only way to become comfortable with it is by incorporating it into your development workflow.
>
> 
>
>4. Ruby
>
>Learn to Program by Chris Pine
>
>This book is structured like Eloquent JavaScript, except for Ruby. It was a great introduction to the Ruby language because the author wrote the book for total beginners.
>
>The Well Grounded Rubyist by David A. Black
>
>This book builds upon your basic Ruby knowledge. It's gives a very in-depth look at Ruby's core API, including syntactic sugar, metaprogramming, and other Rubyisms.
>
>To hone in on my Ruby skills, I worked on a number of projects. I started with easy problems on Project Euler, then worked my way up to solving harder ones, like Hangman, 24, and Sudoku.
>
> 
>
>5. Twitter Bootstrap
>
>This is used to quickly stylize web pages. I learned by watching Youtube videos, reading other peoples’ code on GitHub, and the official Bootstrap documentation. This is a great tool that everyone web developer needs to learn to use.
>
>Once I read a bit about Bootstrap, I added it to my own personal website to get some practice and to make it look better.
>
> 
>
>6. SQL
>
>Resources: SQLzoo.com
>
>SQLzoo is great because it encourages learning by doing.
>
>I went light on SQL because I knew about ActiveRecord, a tool available in Rails that lets us query our database with plain old Ruby.
>
> 
>
>7. Ruby on Rails + Testing
>
>Resources:
>
> One Month Rails
>
Rails 4 in Action
>* Everyday Rails Testing with RSpec
>
>One Month Rails was the perfect introduction to Ruby on Rails because it doesn’t go deeply into technical details. I think it’s designed for entrepreneurs who just want to get an idea off the ground quickly. It made the content in Rails 4 in Action feel familiar.
>
>Rails 4 in action, although a bit frustrating at times because it’s outdated, walks readers through a test-driven approach to the building of a ticket management app.
>
>After reading as much of this book as I could, a friend of mine helped me revisit all of my old Ruby applications and test them.
>
>Although these resources were immensely helpful, I think having the mentorship of another developer made a greater difference in my learning. I had a friend who pair-programmed with me daily, reviewed my code, and showed me how to think like a software developer.
>
>If you're interested in learning more, you can visit Ruby on Richards and sign up for the free mailing list where I'm sharing a more detailed walkthrough of the path to becoming a professional web developer. There are also things you pay for, but the in-depth guide is free.
>
>Cheers.

u/surpriseslingshot · 1 pointr/graphic_design

Hey dude! I want to send you a huge long explanation I did a while ago about Wacom tablets (which are "industry standard") that didn't get much love in the original post, but I put a lot of work into figuring everything out for this dude so I thought I'd share it again.

Before I paste in my response to this question someone posted, I wanted to mention a few things about your unique situation.

When starting out in design, it's probably more important to invest in a mouse, the Creative Cloud Suite, and some sketching supplies. I use my tablet all the time, but in my classes only about half of the people use tablets. Everyone else gets by just fine (even in illustration) with a mouse. Trackpads are asses to work with, and a good sketchbook, a set of Micron pens, a nice .5 mechanical pencil and some Prismacolor pens are gonna do you a lot more help than a tablet, especially if you're just starting out in classes. Other supplies you might need include a T-Square, a right angle measure (is that what they're called?), a good X-acto knife and a bunch of blades, a good ruler, some tracing paper, and a case to carry it all around. Oh and a portfolio (one of the cloth ones so you can carry your print work around).

If you're specifically looking at web design, i'd invest in a couple amazon books like this book and this book

In terms of graphic tablets, I'm posting an explanation of all the ones available right now. The person for whom I was originally responding was looking to buy one as a gift for, I think, their SO who was primarily a photographer using Photoshop. And just as I post at the bottom of the quoted message, feel free to PM me if you have other questions about anything that I've mentioned here :) Good luck OP, and sorry for the wall of text!

> First off, it's much easier to navigate the different models via the actual wacom site[1] . Here's a breakdown of Wacom tablets:
Almost all wacom tablets come in different sizes. Typically they are small, medium, and large. Very simple, it just dictates how large the tablet is. On the other hand, it also dictates the ratio of calibration to the screen. Let's pretend that your tablet is 4"x5" and your screen is 8"x15" (for the sake of an example, ignore the absurd dimensions). Since every point on the tablet is directly calibrated to a point on your screen, it'll take 1.5 times longer for your cursor to travel horizontally than it will vertically. Not an issue, but it makes the learning curve for using a tablet a little steeper because you have to learn how to change your hand-eye coordination from 1:1 to 2:3.
Ok so about the different models: Bamboo is an older model that is no longer sold. Now they have Intuos Pro and just plain old Intuos. Bamboo is great, fine, wonderful even, but as time goes on it'll be harder to find replacement stuff (like pens, which I have lost once or twice) for the tablet itself.
Now, in the plain old (newest) intuos family, you've got Draw, Art, Photo, and Comic. Draw, the cheapest one, is not a touch tablet. It won't respond to your fingers on it, just the stylus. The rest are all touch tablets too. All four are considered "small". Draw is the bare minimum. Nothing special comes with it. Next level up, you've got Art. Art is touch sensitive and comes with Coral Painter. Next one (Photo) comes with Tonality Pro, Intensify Pro, Snapheal Pro, Noiseless Pro (and I know nothing about what each program does). Then Comic comes with Clip Studio Paint Pro and Anime Studio® Debut 10 (again with the not knowing what it is).
Next up You've got the Intuos Pro, which is what I use (i'm a senior design student with four years of professional design experience, to put it in perspective I do a lot of illustration and I'm very happy with my Intuos Pro). There's really nothing too complex about these, there's small, medium, and large. That's really the only difference among them.
In terms of which one to get, here's my thoughts. The Intuos Pro family is great, but if he's only editing photos then it might not be worth it to get the more expensive tablet. The bamboo tablets are adorable and easy to bring around, but they jack up the price for absurd programs that you most definitely don't need (Adobe suite is standard in the industry. While he sounds like he's only working with Photoshop, if he ever needs to share a file with someone who doesn't have the programs that come with the tablet, they'll also have to own the software in order to read the files).
I have an older generation Intuos Pro that does not have touch-capabilities. It's fine, I have learned key commands to compensate for my inability to quickly zoom and move around artboards, etc. If you're trying to save money, go for the Intuos Draw. It's a great starter, and within the next year-and-a-half to two years he'll probably upgrade. Or you can drop a hot dollar on the Intuos Pro family and kinda bite the bullet. I started out with a bamboo (back in 2007!) and used it until I came to college. I got an Intuos Pro, loved it to bits, and lost the stylus. For about 8 months I was too lazy to buy an $80 new stylus so I used my 2007 bamboo for all my work, and it went fine! I have since sold my little baby bamboo, but it served me well for a long, long time. The only problem is that the appeal of a new toy is sometimes greater than the practicality and logic of playing with an old one.
Best of luck! Let me know if you have any other questions...

u/CSMastermind · 4 pointsr/learnprogramming

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

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

Job Interview Prep


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

    Junior Software Engineer Reading List


    Read This First


  10. Pragmatic Thinking and Learning: Refactor Your Wetware

    Fundementals


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

    Understanding Professional Software Environments


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

    Mentality


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

    History


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

    Mid Level Software Engineer Reading List


    Read This First


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

    Fundementals


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

    Software Design


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

    Software Engineering Skill Sets


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

    Databases


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

    User Experience


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

    Mentality


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

    History


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

    Specialist Skills


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

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

Here's a good list I keep posting because people often ask the same question - not like it's a bad thing.

In any case follow the below, but I really suggest for total newbies to first go through the course Codecademy offers. It won't teach you much in how to do things but the syntax education is good. Follow their HTML and CSS courses and when you're done, create a site using just HTML and CSS. Once done, try to emulate a few of your favorite sites using just these two languages.

Once done you should check out the free 30 day Tutsplus courses on HTML/CSS and jQuery. At some point you will want to go back to Codecademy and take their JS course. Syntax and method of doing or starting certain things is important. It's incredibly easy to pickup the actual methods of doing things once your head understands the syntax used.

Any form of education that follows a hierarchical format makes for easy learning.
__


Codecademy isn't bad. It won't teach you much in the way of doing things but it does teach you the way to type out code, the general process and stuff. I can't speak for myself because I work as a professional developer and have been tinkering with code for 10 years now, but I did give the first lesson to one of my brothers. He's not great with computers or the Internet, but he was able to follow the first two sections of the basic HTML/CSS course and able to make his own site albeit very basic in nature nearly a month later (3 week gap following him doing the lessons). He was able to do a rough basic site of his Facebook profile, and he nailed it. It should open doors for you in terms of having the basic knowledge of how to do things. It'll allow you to read more advanced stuff and pick it up much faster than if you hadn't.

Below is a list I sent to someone on here a while back.

>
>http://www.reddit.com/r/webdev/comments/1eqaqo/best_books_or_online_resources_for_comprehensive/ca2w2dn?context=3



>PHP and MySQL Web Development (4th Edition)
>
>Beginning PHP and MySQL: From Novice to Professional
>
>Read the second book, do all the examples, then go back to the first book. Pay a lot of attention toward array manipulation. When you're comfortable with that, get into OOP. Once you do and OOP clicks for you, you'll be able to go to town on anything. I've heard a lot of good about Jefferey Way's video lesson courses over at TutsPlus. I've never used them nor do I need to, but I've never heard a single bad thing about their video courses. Their Javascript and Jquery is a great starting point. This is great stuff too if you're willing to put in the time.
>
>Professional JavaScript for Web Developers
>
>JavaScript: The Definitive Guide: Activate Your Web Pages
>
>Responsive Web Design with HTML5 and CSS3
>
>The Node Beginner Book
> Professional Node.js: Building Javascript Based Scalable Software
>
>Paid online "schooling":
>
>http://teamtreehouse.com/
>
>http://www.codeschool.com/
>
>Bonus:
>
>http://hackdesign.org/
>
>
>I've got a shit ton (Excuse my French) of books in print and E-Format that I could recommend, but it would span a couple pages. Anything is easy to learn so as long is it's served in a hierarchical format that makes it easy to absorb the information. A year ago I started to learn Ruby and using ROR as a framework. I can say it's been quite fun and I feel confident that I could write a fully complete web app using it. I started node.JS a few months ago, but it's been on break due to being sick and some unexpected events.
>
>My knowledge is extensive only because I wanted it to be. I'm not gifted by any means nor am I special. Not by a longshot. Some people are gifted when it comes to dev and design, most are not. Most only know one or the other. I forced myself to learn and be good at both. I'm 23, I started when I was about 12. I'm only breathing more comfortably now. I know a load of people on here and other sites who make me look like complete shit.
>
>
>Also for what it's worth, sign up to StackOverflow. It's the bible and holy grail rolled up into one site. It's amazing.
>
>Also;
>
>Hattip to /u/ndobie
>
>> CodeAcademy
>
Team Treehouse
> CodeSchool. This is more programming but still very useful & has free stuff.
>
Tuts+
> Google. Probably the best way to find out how to do something specific.
>
This subreddit. If you have any questions about how to do something, like parallax scrolling, try searching for it, then ask, make sure to include an example of what you want if you don't know what it is called.

u/wackycrane · 1 pointr/webdev

I would like to encourage you a little and liberate you from the thought that a good designers must "be creative" (i.e., good at making things look pretty).

Form and function. Web design is primarily about function (i.e., problem solving). Form plays a lesser role and can be highly subjective. As a general principles, so long as form does not hinder function and is not needed to communicate a particular message (e.g., elegance, happiness, anger, etc.), then good-enough form is good enough.

Consider Craigslist. It's an ugly website. It's not going to win any good-looks awards. Yet, people are not leaving in droves because it solves a problem (i.e., post, search, and review classifieds) and does so well.

On the flip side, there are many beautiful websites that are functionally defective.

Good designers solve problems. If you want to learn good design, I'd recommend a few courses:

  • Graphic Design Specialization [Coursera]
  • Interaction Design Specialization [Coursera]
  • Game Design Specialization [Coursera]
  • User Experience Research and Design MicroMasters [edX]
  • Intro to the Design of Everyday Things [Udacity]

    You can take all of these courses and specializations for free. (Make sure you select the free option if that's your preference.) They will help you learn "design thinking" from three different perspectives.

    A really good book on usability (function) with wide applicability is Don't Make Me Think by Steve Krug. A good book on graphic design basics is The Non-Designers Design Book by Robin Williams.

    Sadly, most web "design" books focus on teaching HTML, CSS and JavaScript rather than design, so I can't provide any good resources specifically on web design. (Maybe others can fill that void.)

    However, the benefit of approaching design from a variety of perspectives and in a variety of contexts is that it helps you learn how to "think design." Seeing design thinking play out across areas reinforces the basic design principles and practices and makes it easier to apply them to web design.

    If you are more interested in form, then I'd recommend looking into studio art classes (e.g., drawing, painting, photography, digital imaging, etc). (Alternatively, you could follow courses on YouTube for these.) While these sometimes focus more on technique, they'll help you learn how to dissect what you see. You'll learn to see objects as shapes, lines, textures, shades, hues, etc. Combine that knowledge with good technique (e.g., drawing, HTML/CSS, Photoshop, etc.), and it becomes easy to make things look nice.

    Also, don't neglect creativity. One of the best books on creativity that I've ever come across is Sparks of Genius: The Thirteen Thinking Tools of the World's Most Creative People. While it's a long read, it provides you with some great tools to use to "spark" creative thought.

    Hope that helps.
u/duotoner · 3 pointsr/web_design

A Word of Caution on Inspiration Galleries

Seeking inspiration (ideas) is perfectly acceptable, but it must be done so cautiously. Too often, people fall into the trap of simply copying the sources of inspiration because it looked nice.

Instead, it's helpful to study the source of inspiration. Which components are interesting? Why were they used? What problem was the designer attempting to solve with them? Once you understand why those components were used, then you are better positioned to decide if they help solve your design problem.

It's also helpful to remember that no two design problems are the same. Sure, you're a bank and we're a bank, but we have different needs, target different audiences, have different value propositions, different brands, and so on. Thus, our design solutions will necessarily differ.

Some Helpful Resources

As for helpful resources, I would start with a video from Flint McGlaughlin on the inverted marketing funnel. You're probably already familiar with the funnel concept from marketing, but he describes it as fulfilling a sequence of "micro yes" points. If you have a good understanding of how the user moves through these "micro yes" moments, then it can help you decide where to choose and place elements on a page. For example, should your call-to-action be above the fold? Do you need pictures? Are stock photos okay? And so on.

Going more in-depth, I would recommend looking to The Elements of User Experience by Jesse James Garrett. You can find lecture videos from him on YouTube covering the ideas.

Another book on the essential reading list is Don't Make Me Think, Revisited by Steve Krug. It's a fantastic book on usability and user experience.

For a slightly more graphic design bent, although still applicable, I would recommend The Non-Designer's Design Book by Robin Williams. It will help you understand the basic components of graphic design which can be applied to web design.

What all these resources do is give you a basic framework through which you can make better design decisions.

Design is fundamentally about problem solving. You are not creating a design simply for the sake of the "design." You are creating a design to accomplish some goal. This is true of graphic designer, web design, user experience design, interaction design, and even industrial design.

u/catatafishh · 5 pointsr/Dirtybomb

Ah, it seems we have just filled those positions! Apologies to get your hopes up, that was bad timing. We will need more UI designers later this year - most likely in late Summer. Perhaps this is better suited for you anyway so you have time to prepare an application!

Adobe XD is a must - the fastest "basic" prototyping I've ever experienced. I've pushed it's use through our studio and it's producing awesome results (at least till InVision Studio comes out!). After Effects is optional but an invaluable tool for communicating bespoke animations for the programmers.

Really, as long as you can apply good UX practices to your designs, consider different player experiences at all stages, and can create something awesome in XD / Photoshop / Illustrator that is enough.

Some relevant books from the top of my head:

u/PM_ME_UR_OBSIDIAN · 3 pointsr/slatestarcodex

"Functional programming" is a loosely defined term, though I'd say it neatly factors into two parts:

  1. Improved affordances for "coding in the small". For example, sum types are like enum types on crack, and pattern-matching + destructuring is like switch statements on crack. Together, they make a certain class of computations ("if this, then that, otherwise, ...") much more concise, more readable, and more obviously correct/incorrect.

    Type inference is another such improvement.

  2. Finer-grained module boundaries. Designing APIs becomes a rich, creative activity as you work out which inputs are acceptable and which aren't. This is one of the earliest steps of the software design process, but it's also one in which you can root out most bugs.

    By restricting what use of your library is and isn't acceptable, you can do fantastic things. For example, the optparse-applicative Haskell library is used for parsing command-line arguments. Because you specify your command-line arguments in a very rigid format, the library manages to generate --help output (similar to a man page) for free.

    As another example, it is idiomatic in functional languages to restrict yourself to using immutable (const) variables. This excludes a huge number of concurrency bugs!

    This stuff also lets you go all out on separation of concerns. With advanced patterns such as monad coproducts, you can separately implement and test your logging, authentication, business logic, ..., and have strong guarantees that they will play well together. The outcome is code that looks like this, readable and extensible even by non-programmers.



    In a nutshell, functional programming helps you separate your concerns cleanly, while sheltering you from having to write unnecessary (i.e. redundant) code.

    How useful that is depends on the kind of software you're writing. If you're writing a piece of software which is highly concurrent, must be auditable, safety-critical, multi-functional, with rich access control, a GUI and a TUI, etc., then you definitely want functional programming.

    On the other hand, if you're doing exploratory numerical computing, or throwing together a quick web app... then you only have one problem space, it only requires simple control flow, you can cram everything in a single module, and functional programming won't necessarily help you much.

    ____


    If you're curious about functional programming and you're running Windows, I would recommend installing Visual Studio Community 2017 with F# support. Then check out Tour of F# for a quick intro. Start getting cozy with higher-order functions. Write a small web app in Suave. Maybe do the F# Koans.

    After that, if you feel like leveling up, check out Okasaki - Purely Functional Data Structures. It's written in Standard ML, which is almost indistinguishable from F#. This book is a rite of passage for functional programmers, a necessary step to transcend the "advanced beginner" stage.

    With a couple more small projects, you're comfortably at the skill level which would be expected of a junior developer. If you wish to go further still, the next step to level up your functional programming game is to participate in the community - by getting an FP job, by trawling the relevant blogs and subreddits, or by attending a local user group. After a year or two of this regimen you end up a pretty good functional programmer, and you might find yourself saying things like "imperative programming cuts my productivity in half".

    Each step along this journey will improve your imperative and object-oriented programming skills. Like Goethe said, "he who knows one knows none".

    Also, while functional programming is a pretty big departure from imperative and OOP, most of your skillset will transfer. But the skill ceiling in FP is much higher.
u/ashenrose · 2 pointsr/webdev

I'm going to assume you're a complete newbie. I'm only a few steps ahead of you, really, but I can share some advice. I've always felt like 75% of the battle is figuring out what to learn when it comes to scripting or computer languages in general. And a lot of time, even cutting edge, comprehensive sources are outdated within a few years and, if you follow their advice, you may expose yourself to security concerns. Like leapyquacky said, the question is a bit vague, but I'm going to assume you want employees to access a page with user-specific credentials so no employee can impersonate another, etc:

  1. PDOs/prepared statements are the best way to connect to the DB. The PDO documentation will help immensely. It should be easy enough if you've ever done any OOP. The reason for this -- and this is really paramount, especially if it's on the internet -- is the risk of SQL injections.

  2. To maintain any semblance of security, you'd need to hash your users' passwords, and likely with something a little more secure than MD5. There's an excellent article on Openwall about this. You'd need a hash, a salt, and minimum length/complexity requirements for your passwords. This is just not good practice, it's essential if you store anything sensitive.

  3. You'd be using sessions to maintain state across your pages. The best videos I can think of on sessions are behind a paywall, but the documentation should get you pretty far. phpacedemy on YouTube has a few videos on sessions, if I recall. Just remember, if you're using YouTube to learn about sessions, a lot of those videos are dated and the security practices won't be ideal. If you see them connecting to their DB using mysql_connect, this is the case. Listen to the session advice, but don't use that function unless you care to get pretty technical about escaping user input.

  4. You're going to need levels of access on the page -- admin, general, etc., so you can protect information and actions that need to be secure. You'd probably also want a running log of all the changes your users made to the database.

  5. None of this stuff will make much sense unless you're familiar with PHP. The documentation is great, but I recommend reading a good book on it, bearing in mind that whatever you read could be out of date. (Hint: Argh, matey, thar be a website that may get yeh the book yeh want withou' yer payin'.)

    It's not hard but it requires a scattershot of understanding that may take a little while to really get. I know it did for me, anyway. Once you have that going on, you'll probably have more specific questions. Lookin' forward to it.
u/Nessnah · 2 pointsr/UIUC

Wish I had seen this post sooner, not sure if you'll still see this but I was pretty much in the same situation as you this past year. Statistics student trying to get into data analytics (insurance/finance). Most of these tips have already been mentioned but they are definitely valuable if you are trying to get an internship and don't have any other experience.

  • Go to career fairs. Career fair is a MUST if you don't have anything that stands out in your resume. If you don't have a perfect GPA, any internship/research experience, or noticeable personal projects then your resume won't stand out much against the hundreds of others that are submitted online. Going to a career fair gives you the chance to stand out or at least be memorable for recruiters. I applied to probably over 50 companies as well for my internship but the majority of my interviews came from career fairs. Also make sure to not limit yourself to just the Statistics/Actuarial career fair since this one is fairly small compared to others and options are much more limited. I researched some of the companies that were at the Business and Engineering fair and the positions that would be relevant for a statistic student; I got more interviews from these fairs than the Statistic one that happens later on in the year.

  • Update/Review your resume. You mentioned you only got one interview (that wasn't even relevant) out of ~50 applications which is pretty low even for someone without prior experience. Make sure your resume is formatted well and have others review it. I'm on r/cscareerquestions a lot and they have some good daily resume threads on every Tuesdays (even if you're not cs the formatting can be similar in that you should list languages/technology along with personal projects). There's also an LAS resume review office on campus available for students. When I went the professional reviewing my resume didn't know much about STEM related careers but he was able to give me some general resume tips (e.g. consistent spacing, action words, typos/grammar, eliminating white space). Also make sure your resume is always in PDF format when you submit it; resumes submitted as DOC files were usually the worst resumes at my previous job.

  • Learn and apply languages/statistical packages related to your field. Earlier you said that you are interested in learning Python and R which are very popular in most data analytic roles. Depending on how far you are in your STAT courses I wouldn't worry too much about R since it'll be used in a lot of STAT 400+ classes. Codeacademy would be a good start as an introduction to Python along with the other resources people have mentioned. After going through some of those online resources I'd also recommend you to take a look at Python for Data Analysis, it can be a difficult read but you will learn a lot about important packages that are used in the industry (NumPy, Pandas, Requests, SciPy, etc).

  • Work on your soft skills. I'm not sure if this applies to you but make sure you've practiced ways of approaching recruiters and interviews in a confident and professional manner. Many of the recruiters at the career fair are employees that work in which ever field they are trying to recruit in. On top of finding students that are qualified they also want interns that will be a good fit to their work culture. Being genuine and professional seems go a long way for interviewers/recruiters.

    All this being said, this should be taken with a grain of salt. I'm not a recruiter or a full time at a fortune 500, but these are some of the steps I took to get some internship offers this summer.
u/MarcMurray92 · 2 pointsr/learndesign

Congratulations on the masters! :)

I would say step one is to read "Don't make me think" by Steve Krug. The book is full of common sense advice that helps eliminate a lot of decision fatigue.

This blog - The Nilsen Norman Group is a great resource for the "functional" end of things, full of tips and research results on what people find the easiest and most enjoyable to use. Its another resource that gives you a ton of information on what mistakes to avoid when designing interfaces, and what has generally worked out for other designs.

As for aesthetics, just immerse yourself in good work as often as you can. Dribble is good if you view the designs with a grain of salt because a lot of them look great but would be pretty damn hard to use, wouldn't work on mobile etc. Pinterest is good too, and generally just approaching websites you come across critically and thinking "what do I like about this design? What don't I like?"

I'm also like Goodweb.design at the moment too, it's a good one to use to see how many different executions of content with the same purpose can work.

The best teacher is of course experience. Pick something and design for it. If you're stuck and can't figure out how to improve the design, just trawl the internet for ideas or draw wireframes on scrap paper.

This channel is FULL of great design advice. The videos where the company owner reviews employee work is really valuable.

This video is a little drier and a little more on the analytical side, but again gives great insight into how people use interfaces and why they use them like they do.

Hope there's enough there to keep you busy for a little while and see if UX/UI is the direction you'd like to move toward :)

u/theofficialLlama · 0 pointsr/learnprogramming

If you can afford it I'd highly recommend this course on udemy. Its $35 but theres always tons of udemy coupons floating around. I've been working through it and it definitely has helped me get a better understanding of both the front end and back end in web development since there's code alongs, exercises, quizzes, and you even make a bunch of small websites as well as a couple of actual web applications. That being said I'm not affiliated with it in any way. Just sharing what Ive been using to learn and its been very helpful.


Also there's tons of books available both paid and free.
As other people have mentioned, Duckett's books on html, css, javascript, and jquery are very beginner friendly with colorful and easy to understand material.

This is a good one that I've been going through to learn about UI/UX and the overall look and usability of your website. It basically teaches you how to make your website more approachable to whoever is navigating it.

I don't think anyone else has mentioned it but Udacity also has tons of free content, a large majority of it being web development and programming courses.

Other than that you're honestly going to just have to start messing around in a code editor and see what does what. Come up with an idea and really just start trying to code it. It could be a small one pager or it could be the start of your web development portfolio. A big thing that I've come to learn is that when you decide that you want to build something and you have no idea what you're doing, grab a good old pen and paper and write down or sketch what you want to do. Sketch what you want your page to look like. Then figure out how to code it. And if you get stuck google is your best friend. Break down what you want to do into smaller manageable chunks, do one thing at a time, and don't be afraid to get your hands dirty. Being a computer science student, this is the best advice I can give you when it comes to learning this stuff.

u/squidboots · 3 pointsr/Etsy

Collections or Categories, it doesn't really matter - what matters is that A) you're consistent, and B) they are self-evident (clear). In other words, you need to endeavor so that a customer is not going to be surprised when they click on a section. Understand that a customer is always going to have some expectation when deciding to click on a category, and that expectation will range from something as straightforward as:

"I am looking for rings, so I am clicking on the 'Rings' section and I expect to see a bunch of rings"

to

"I see 'Tree of Life' and I know that nature-y things appeal to me, so when I click on 'Tree of Life' I expect to see things that are all clearly related to one another thematically in some way AND I can clearly see why this collection is called 'Tree of Life' through the general brand/theme conveyed by this collection of products."

Therefore, in the first example if a customer clicks on 'Rings' and sees some rings as well as bracelets and necklaces....that customer is surprised. Pretty straightforward. In the second example, if a customer clicks on 'Tree of Life' and sees a bunch of jewelry that really doesn't look like it's thematically tied together in some way AND/OR that jewelry is really not conveying the theme (maybe it's all industrial/steampunk stuff) - that customer is surprised. Surprise comes from when expectations are not met, and in this case customers being surprised will lead to disappointment and frustration. Having consistency and clarity will reduce customer confusion/frustration, and that will keep curious customers from bailing out of your store.

That said, as demonstrated above, it is generally much easier to be both consistent and self-evident with Categories, but that doesn't necessarily mean it is better. As you rightly point out, if you have a strong brand that resonates with your customers, the Collections approach can actually be a pretty powerful way to expose your products to your customer and snag sales you otherwise wouldn't have. It just takes a lot more work to maintain consistency and clarity with Collections because it depends on having strong, clear branding. With that in mind, I think if you go the Collections route you really, really, really need to be very careful and deliberate about it in order to maintain consistency and clarity - but if you do it right, you will go farrrrrr.

As an aside, I strongly recommend the book "Don't Make Me Think: A Common Sense Approach to Web Usability" by Steve Krug. It was originally intended to teach user experience and human-centered design principles to web designers, but honestly it's one of the best damn books out there for anyone trying to convey information of any kind on the internet. It's short and awesome and the world would be a better place if more people read it and practiced its principles.

u/sachio222 · 1 pointr/userexperience

hmm. Where to get started. Learn the gestalt principles of visual design. If you're designing interfaces - these little tips will help you associate, and differentiate well enough to be able to direct attention like a conductor.

Learn to do everything deliberately. If you don't have a reason for something, you're not designing, you're arting. Know the difference and when each is appropriate. For example - want a big splash screen with a fancy colorful image? Is it so you can attract the user to a particular part of the screen? Or is it because you have some extra space and feel like filling it with something. If it's the former, go for it. If it's the latter - you're just making an art project.

Learn about design methodologies, from a university if possible. Industrial design technique is very good for digital problem solving as well. Defining a problem, exploring solutions, and determining a valuable path are things that will help you in every project.

Understand why you are doing what you are doing. And who are you doing it for. Never go past page one without establishing those facts.

Stats will help you in that do everything intentionally part. If you can say 80 of people do this, 20 percent of people do that, you can from this say, that this gets center position, bright colors, dark shadow and lots of negative space. That thing that 20 percent of people do, gets bottom right, lowER contrast, and is there for people that expect it.

Good luck, conferences will help. Podcasts will help. Reading interviews from design teams at larger companies will help.

Asking reddit will help. What you should ask for is paid time off to study lol. Good luck.


edit:
Also get this book universal principles of design I think there's a pocket version. This teaches you what works and why and when to use it.


Get the design of every day things. This book teaches you what good design is. It asks the questions - what is design. When is design good. What is an affordance? How do we signal what things do what? How does all that work? Is a coffee cup good design? What about a scissors? How about google.com vs yahoo.com...

Check out don't make me think... or just think about the title for an hour and pretend you read the book.

a popular one now is hooked. Pavlov's dog experiments except with people, basically operant conditioning for designers.

And learn about grid systems and bootstrap for prototyping. Get a prototyping account. For something, proto.io, invision, framerjs.... Invest in omingraffle and sketch, get a creative cloud license if need be. You will need to show people things a lot. You will need to convince people of your ideas and your paths. You will need to constantly throw together quick and dirty visualizations of what you want to say. Invest in tools that make it simple.

Learn how to sell your ideas. You will be asked a ton of questions as people poke holes in your design. You need to figure out how to soothe their worries. They will your decisions, and you will have to show them that you have the answer. Learn how to present. Learn public speaking. Learn how to communicate with superiors. Learn how to talk with programmers. Learn how to give the programmers what they want from you. Learn how to negotiate, learn how to deliver on time. Learn how to handle stress.

Good luck.

u/rukestisak · 1 pointr/Ubuntu
> Please tell me you don't expect people's websites to fit into a pixel grid and follow the mockup precisely.

D I do the transfer from mockup to code, so everything fits precisely to my specification hehehe. When I am transferring other people's mockups, I try and follow the mockup as closely as possible. Sometimes the mockups are not precise, themselves so I edit them.

> Where can I actually learn more about how to design from the ground up? I'm working on a site that has no existing analog, so I can't just look at how other people have done the same thing and mimic them. I don't even know what to put on what pages.

Hm, I would need some more information to give you good advice. Try and imagine a scenario where a customer is using your site. What is their main goal when using it? Can you simplify the process of them achieving this goal? Any less important goals? What are your main goals with the site? Where would the most logical place for various elements around the site be?

Read Don't make me think for a great usability primer. PM me if you want any more help.

> I thought Gimp did have adjustment layers. At the very least, you can set the blending mode for a layer in such a way that it effectively adjusts one thing in the overall image.

Can it place for example a Hue and Saturation filter on its own layer like Photoshop? I don't want to copy everything into a new layer, apply filter there and then mask or whatever.

> I think the cited reason for the lack of CMYK in Gimp is that they feel Gimp is specifically for image editing, not printing; Photoshop was originally created specifically for printing.

Right, PS started that way but then it evolved. I think GIMP should mimic a lot of PS functionality if they want to see pros switching.

> The .psd support is really lacking. I don't have any way of testing Krita's .psd support... But I do know that if I export a file as .psd from Krita, it doesn't open correctly in Gimp. Specifically, any text objects simply vanish. That's all I've tested, though. Granted, it doesn't exactly import into Krita perfectly either, even though it was saved from there...

Yep. If I receive a .psd from a client I need to be able to open it without any glitches. Currently it doesn't.

> If 'Blending options' in your post corresponds to this post about 'Blending Modes', yes, and Gimp has had them for a very long time. I refer to them earlier in this post, talking about adjustment layers (since I'm otherwise somewhat not sure what you mean by an adjustment layer).

I'm actually talking about the option titled Blending Options which you can select when you right click on a layer in PS. This brings up a Layer Style dialog box with a ton of options. Now, GIMP might have similar functionality scattered around, but I haven't found it yet and it's very useful as I use that dialog box constantly.

> I looked up adjustment layers. Gimp does not have them, but most people say a lot of their functionality - but not all of it - can be made up for with blending modes applied to layers 'above' the layer you want to adjust.

Hassle!

> Also, the APIs necessary for adjustment layers are coming in 2.10, after which they have the technological capability to make them.

That's good to hear. They have made great progress and I am sure they'll see their numbers rise if they get closer to PS functionality.

Another thing I forgot to mention, a minor gripe I have with GIMP's UI - I think the cursor and the selecting bounding boxes look clunky instead of precise. The tools should look and feel precise (as well as be precise), and I think GIMP is lacking here. Compare PS to GIMP and you'll see what I mean.

u/offwithyourtv · 3 pointsr/userexperience

This probably isn't the most helpful answer, but any resources I might have used to learn the fundamentals myself are probably pretty outdated now. Honestly I'd just try to find highly rated books on Amazon that are reasonably priced. I haven't read this one for psych research methods, but looking through the table of contents, it covers a lot of what I'd expect (ethics, validity and reliability, study design and common methods) and according to the reviews it's clear, concise, and has good stats info in the appendix. I had a similar "handbook" style textbook in undergrad that I liked. For practicing stats, I'm personally more of a learn-by-doing kind of person, and there are some free courses out there like this one from Khan Academy that covers the basics fairly well.

But if you can, take courses in college as electives! Chances are you'll have a few to fill (or maybe audit some if you can't get credit), so go outside of HCDE's offerings to get some complementary skills in research or design. I usually find classrooms to be more engaging than trying to get through a textbook at home on my own, and especially for psych research methods, you'll probably have a project that gives you hands-on experience doing research with human subjects (most likely your peers). There are lots of free online courses out there as well if you aren't able to take them for credit.

You guys are making me miss school.

Getting specifically into UX self-study, in addition to a UX-specific research methods book (this is a newer version of one I read in school) I'd also go through the UX classics like Don Norman's The Design of Everyday Things and Emotional Design, Krug's Don't Make Me Think, and Casey's Set Phasers on Stun (this last one being more of a fun read than a practical one).

u/elitelimfish · 5 pointsr/FinancialCareers
  1. WSO is a great place to see other people's questions on this stuff so you might want to check that out.

  2. Starting pay at an okay shop should land you at least $150k but good shops will be north of $200k (Citadel, DE Shaw, Two Sigma, etc.) Quant salaries vary greatly, however the upside is practically unlimited. Not sure about other firms but at Citadel they generally don't go above 60/week.

  3. Spend some time looking at the applications for places/roles you're interested in as they will be rather specific on qualifications and background.

  4. I'm assuming you are looking to be a Quant Researcher which is where the real work is done. Many places will look at your thesis and go hardcore on poking holes in it so be ready to defend it. Your ability to research and possibly implement solutions is what they're looking for here.

  5. HFT quant work generally utilizes C++ for execution of a strategy as it runs fastest. Python and R is useful for research and analysis. In this area I'd recommend reading This Book written by a former AQR quant.

    Also I've heard good things about this book This Book. But haven't gone through it myself.

  6. Jobs are pretty stable as long as you are good at what you do. Good quant divisions will have phenomenal returns and the employees will have a good work/life balance.

  7. Location-wise NYC is naturally the best place, however Chicago would be your #2 bet.
u/davidNerdly · 4 pointsr/web_design

Just some I like:

Dev


  • [You Don't Know Javascript (series)(]https://github.com/getify/You-Dont-Know-JS). Short and sweet mostly. Well written. Some are still pending publishing but there are a couple available now. I believe you can read them for free online, I just like paper books and wanted to show some support.

  • Elequent Javascript (second release coming in november). Current version here if you are impatient. I have not personally read it yet, waiting for the next revision. I recommend it due to the high regard it has in the web community.

  • Professional JavaScript for Web Developers. Sometimes called the bible of js. Big ole book. I have not read it through and through, but have enjoyed the parts I have perused.

    Design


    (I am weak in the design side, so take these recommendation with a grain of salt. I recommend them off of overall industry cred they receive and my own personal taste for them.)

  • The Elements of Typographic Style. Low level detail into the art and science behind typography.

  • Don't Make Me Think, Revisited. I read the original, not the new one that I linked. It is an easy read (morning commute on the train was perfect for it) and covers UX stuff in a very easy to understand way. My non-designer brain really appreciated it.

    below are books I have not read but our generally recommended to people asking this question

  • About Face.

  • The Design of Everyday Things.

  • The Inmates Are Running the Asylum.


    You can see a lot of these are theory based. My 0.02 is that books are good for theory, blogs are good for up to date ways of doing things and tutorial type stuff.

    Hope this helps!


    Battery is about to die so no formatting for you! I'll add note later if I remember.

    EDIT: another real quick.

    EDIT2: Eh, wound up on my computer. Added formatting and some context. Also added more links because I am procrastinating my actual work I have to do (picking icons for buttons is so hard, I never know what icon accurately represents whatever context I am trying to fill).
u/blue6249 · 2 pointsr/LinuxActionShow

>Like the concept of piping info between applications is just starting to make sense (even though I have no clue how it works).

Coming from a programming background it might be easier for you to think of each of the little unix core programs as a function. They all have options and generally do one thing really well. "grep" searches for things. "sed" does regex matching/replacment. "cut"... well it cuts out parts of files. The easiest way to figure out what something does is probably through the man page. (run "man grep" at the terminal). That being said some programs have -really- goddamn big man pages and are much harder to navigate. Bash, for instance, has an enormous man page.

The concept of piping makes more sense in the context of functions. In python you might write something like this:

"hello".upper()

Which would give you:

"HELLO"

In bash you could write that as:

echo "hello" | tr '[a-z]' '[A-Z]'

That first command just prints out the string, but instead of printing it out at your terminal the pipe will send all of it's output to the "tr" command. ("man tr" will help you understand what it's doing there). Because tr does not have it's output being redirected it just gets printed back to the terminal.

>Question 1, should I stick with zsh or learn the basics of bash first?

I don't think you would have much of a problem learning either just so long as you understand that there will be minor differences between different shell languages. Those differences tend to be syntax rather than functionality, and when it is a difference in functionality it tends to be much less commonly used features. If you have to choose one I would recommend bash for scripting solely because it is somewhat more portable. "sh" is even more portable than bash, though it can be more painful to use since it doesn't have some of the nice features in modern shells. Remember that you don't have to use the same language for your shell and for your scripts. You just have to define a different shebang on the first line of the script.

>2. what are some things I can use scripting for (what do you use it for)?

I don't find myself scripting much at home. At work though I spend a TON of time writing various scripts. What I -do- use bash for a ton is one-liners. Once you get used to the syntax you can write some very useful code in just a couple lines. One example that I use frequently is "Run this command every 10 seconds forever" which can be written as

while sleep 10; do
{command}
done

The "watch" program does more-or-less the same thing, but I find it unwieldy once the commands inside get more complex.

An example of a somewhat longer, and arguably poorly written script for backups using tarsnap is here.

>Any explination for common commands would be awesome.

As I mentioned earlier "man" is your friend. The other option is "command --help". You can generally google for some examples, which can be really useful for some of the less easily grok'd programs (awk, for example).

>And I do know a bit of python and have heard of iPython. Could that be a replacement for bash or zsh or is that something completely different and I'm in over my head (very likely). Much thanks.

ipython is not going to be a good replacment for your standard shell. It's cool, and I use it frequently when coding in python, but it simply lacks the powerful integration with the system that bash/zsh has. What it is extremely useful for though is exploratory programming. What really opened my eyes on the subject was the book Python for Data Analysis.

Edit: Syntax

Also, for any shell junkies please don't complain about the non-necessary "echo" up there. I know you could use a here string, but I think it would defeat the purpose of an easily digested example.

u/phao · 8 pointsr/cscareerquestions

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

You could consider going back to "fundamentals".

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

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

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

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

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

u/parts_of_speech · 12 pointsr/datascience

Hey, DE here with lots of experience, and I was self taught. I can be pretty specific about the subfield and what is necessary to know and not know. In an inversion of the normal path I did a mid career M.Sc in CS so it was kind of amusing to see what was and was not relevant in traditional CS. Prestigious C.S. programs prepare you for an academic career in C.S. theory but the down and dirty of moving and processing data use only a specific subset. You can also get a lot done without the theory for a while.

If I had to transition now, I'd look into a bootcamp program like Insight Data Engineering. At least look at their syllabus. In terms of CS fundamentals... https://teachyourselfcs.com/ offers a list of resources you can use over the years to fill in the blanks. They put you in front of employers, force you to finish a demo project.

Data Engineering is more fundamentally operational in nature that most software engineering You care a lot about things happening reliably across multiple systems, and when using many systems the fragility increases a lot. A typical pipeline can cross a hundred actual computers and 3 or 4 different frameworks.doesn't need a lot of it. (Also I'm doing the inverse transition as you... trying to understand multivariate time series right now)

I have trained jr coders to be come data engineers and I focus a lot on Operating System fundamentals: network, memory, processes. Debugging systems is a different skill set than debugging code, it's often much more I/O centric. It's very useful to be quick on the command line too as you are often shelling in to diagnose what's happening on this computer or that. Checking 'top', 'netstat', grepping through logs. Distributed systems are a pain. Data Eng in production is like 1/4 linux sysadmin.

It's good to be a language polyglot. (python, bash commands, SQL, Java)

Those massive java stack traces are less intimidating when you know that Java's design encourages lots of deep class hierarchies, and every library you import introduces a few layers to the stack trace. But usually the meat and potatoes method you need to look at is at the top of a given thread. Scala is only useful because of Spark, and the level of Scala you need to know for Spark is small compared to the full extent of the language. Mostly you are programatically configuring a computation graph.

Kleppman's book is a great way to skip to relevant things in large system design.

https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321

It's very worth understanding how relational databases work because all the big distributed systems are basically subsets of relational database functionality, compromised for the sake of the distributed-ness. The fundamental concepts of how the data is partitioned, written to disk, caching, indexing, query optimization and transaction handling all apply. Whether the input is SQL or Spark, you are usually generate the same few fundamental operations (google Relational Algebra) and asking the system to execute it the best way it knows how. We face the same data issues now we did in the 70s but at a larger scale.

Keeping up with the framework or storage product fashion show is a lot easier when you have these fundamentals. I used Ramakrishnan, Database Management Systems. But anything that puts you in the position of asking how database systems work from the inside is extremely relevant even for "big data" distributed systems.

https://www.amazon.com/Database-Management-Systems-Raghu-Ramakrishnan/dp/0072465638

I also saw this recently and by the ToC it covers lots of stuff.

https://www.amazon.com/Database-Internals-Deep-Distributed-Systems-ebook/dp/B07XW76VHZ/ref=sr_1_1?keywords=database+internals&qid=1568739274&s=gateway&sr=8-1

But to keep in mind... the designers of these big data systems all had a thorough grounding in the issues of single node relational databases systems. It's very clarifying to see things through that lens.

u/RAPTOREXPLOSION · 1 pointr/IWantToLearn

PHP is a great language to start out with. It's super easy to learn because it's very forgiving, which means it's easy to write "bad" code.

Writing bad code is okay for a while, but when you learn what "good" code is, you'll be frustrated at yourself.

I'd really recommend learning at The Odin Project

It doesn't teach you PHP, but it is a guided course that kinda holds your hand and tells you where to go.

If you're genuinely interested in PHP, I'd recommend Head First PHP & MySql

The Head First books do an insanely good job of teaching. They're among the best in my opinion, and Head First Design Patterns is kind of an industry standard.

That should teach you the basics. Enough to get started and enough to be dangerous.

After that, PHP Objects, Patterns, and Practice is a really good book to go from "okay" to "pretty great".

Good luck!

u/meowris · 3 pointsr/learnprogramming

Junior UX person here. Not much of a programmer myself, but it's sufficient for my needs, as I am only doing front-end design when I dabble with code. There is a multitude of ways to learn how to code, but generally speaking, I find that practicing in small repetition helps the best to retain and absorb information. When you are doing a small code example, try to rewrite differently and see how it works in each of those ways. I also recommend coming up with a small project that you can work on (design and putting a personal site live, for example), as opposed just doing the practices, that way you are presented with a real world environment that contains restrictions and possibilities.

Do you draw? It might help to learn how to draw well, which will help you illustrate designs and potentially become a fun hobby.

Some beginner level books I recommend:

u/coffeecoffeecoffeee · 20 pointsr/statistics

You absolutely will need R and/or SAS to do any work beyond basic statistics. You'll have to know how to do data munging and how to reshape your data to get it in the right form. It's 2018. You have to know how to clean your own data. Additionally, you'll be asked to repeat complicated analyses, or questions like "How did you calculate this number in this analysis from six months ago?" A point-and-click interface doesn't give you a record that makes it easy to do these things. In a programming language, you can rerun complex procedures in the press of a button. Programming can be a little scary at first, but once you get the hang of it, you'll wonder how you lived without it.

Fear not though! There are a ton of fantastic resources to learn how to code. If you've never programmed before, my recommendation would be to go through the Codecademy intro Python tutorial. Even if you never want to use Python after this, you'll learn about variables, conditions, loops, data types, functions, and language-specific features. These are ideas that exist in every programming language (well SAS has macros, not functions, but you get my point.)

I also recommend using R for all of your statistics homework, even if the professor doesn't require it. That's how I learned R. It'll put you in a position where you have to learn how the language works and where the functions you want to use are. Once you have the basics of R down, check out R for Data Science. It's a very modern book on R that encourages you to use user-friendly packages to do data analysis. As for SAS, it's a terrible language that's losing market share to R and is popular because it's popular. It can help to know the basics, but it's a language I leave off my resume and LinkedIn because I never want to touch it again.

I'd also recommend learning SQL at some point. Most datasets will be in databases you'll have to query for the data you want. My favorite book for this is SQL in 10 Minutes, which is a book of 10-minute lessons, where each one is on a SQL concept. Don't worry about the specific SQL dialect since they're virtually all the same. Once you're comfortable with basic queries and joins you're in good shape.

u/jdh30 · 2 pointsr/rust

> To be honest I don't entirely understand the term "functional data structure" I'm sort of new to functional programming myself.

I'm sure you're familiar with the idea of an immutable int or double or even string. Purely functional data structures just extend this idea to collections like lists, arrays, sets, maps, stacks, queues, dictionaries and so on. Whereas operations on mutable collections take the operation and collection and return nothing, operations on purely functional data structures return a new data structure.

Here's an example signature for a mutable set:

val empty : unit -> Set<'a>
val contains : 'a -> Set<'a> -> bool
val add : 'a -> Set<'a> -> unit
val remove : 'a -> Set<'a> -> unit

and here is the equivalent for a purely functional set:

val empty : Set<'a>
val contains : 'a -> Set<'a> -> bool
val add : 'a -> Set<'a> -> Set<'a>
val remove : 'a -> Set<'a> -> Set<'a>

Note that empty is now just a value rather than a function (because you cannot mutate it!) and add and remove return new sets.

The advantages of purely functional data structures are:

  • Makes it much easier to reason about programs because even collections never get mutated.
  • Backtracking in logic programming is a no-brainer: just reuse the old version of a collection.
  • Free infinite undo buffers because all old versions can be recorded.
  • Better incrementality so shorter pauses in low latency programs.
  • No more "this collection was mutated while you were iterating it" problems.

    The disadvantages are:

  • Can result in more verbose code, e.g. graph algorithms often require a lot more code.
  • Can be much slower than mutable collections. For example, there is no fast purely functional dictionary data structure: they are all ~10x slower than a decent hash table.

    The obvious solution is to copy the entire input data structure but it turns out it can be done much more efficiently than that. In particular, if all collections are balanced trees then almost every imaginable operation can be done in O(log n) time complexity.

    Chris Okasaki's PhD thesis that was turned into a book is the standard monograph on the subject.

    In practice, purely functional APIs are perhaps the most useful application of purely functional data structures. For example, you can give whole collections to "alien" code safe in the knowledge that your own copy cannot be mutated.

    If you want to get started with purely functional data structures just dick around with lists in OCaml or F#. Create a little list:

    > let xs = [2;3];;
    val int list = [2; 3]

    create a couple of new lists by prepending different values onto the original list:

    > list ys = 5::xs;;
    val int list = [5; 2; 3]

    > list zs = 6::xs;;
    val int list = [6; 2; 3]

    > xs;;
    val int list = [2; 3]

    Note how prepending 5 onto xs didn't alter xs so it could still be reused even after ys had operated on it.

    You might also want to check out my Benefits of OCaml web page. I'd love to see the symbolic manipulation and interpreter examples translated into Rust!

    > Personally I used Atom for a while, until I learned how to use Vim, now I use that. IDE information for Rust can be found at https://areweideyet.com/

    Excellent. I'll check it out, thanks.
u/wes321 · 2 pointsr/Entrepreneur

The two books I'd recommend are Founders at Work
and Don't Make Me Think . even though this is more on the technical side it's an amazing book about user experience which most entrepreneurs should try to master :)

"Behind the scenes" meaning stories that aren't fabricated to make good TV but to give the viewer a better understanding of what goes on behind a product / website. TED talks are great with that so I'd highly recommend watching these https://www.ted.com/talks?sort=newest&topics%5B%5D=entrepreneur

The more dramatic but easy to keep in the background type shows are

u/albinotonnina · 3 pointsr/reactjs

Hi! Thanks for your reply! Good point!
I disagree on that UX rule. This is based on my readings.
Main source: Steve Crug - Don't make me think
https://www.amazon.co.uk/Dont-Make-Think-Revisited-Usability/dp/0321965515/ref=pd_lpo_sbs_14_t_0?_encoding=UTF8&psc=1&refRID=TDYRVK2QDQRXX3QZ77ZS

Or this post:
https://ux.stackexchange.com/a/40446/102854

So yes, I'm trading clicks for layout simplicity.

"Navigation should get the user where they need to go, with clear, well-defined paths and decision points"

This thing is more about this.

About the cues from small devices well yes, we prefer larger screens I definitely agree with you. But are we on our mobile a lot?
Do you feel that the tapping and the scrolling became sort of natural for all of us? Do you have this general sense of people preferring mobile apps to the more traditional web apps for desktop?
I'm trying to investigate on a mixed approach maybe? A lot of real estate and the simplicity of mobile navigation.

Also as a developer I can see in this technique some advantages, code wise. It's very easy to build apps like this.
You can create enormous quantities of user flows with little effort, not having to do a lot of layouting. It's easy to prototype or reiterate. Users also can basically create their own paths.

Obviously all this may be valid or not. It's experimentation, at least for me.

I have the luxury to try this technique on a product at work, I hope I'm going to test this soon.

Thank you for your comment! Let's discuss more if you want!

u/mynameisgoose · 2 pointsr/userexperience

Get the book "Don't make me think", by Steve Krug.

It's a book all about usability. Naturally, given the subject matter, the book itself is a very easy read. It's a good basis for the principles of what make up a great user experience.

UX and UI go hand in hand, however like web design and SEO, they can be a whole discipline all by themselves.

If you want to focus on the design side, really sharpen your prototyping abilities with tools like Axure, as you've mentioned or Sketch. Play with Adobe XD preview, because I'm sure that will end up having a huge impact later down the road and will get you ahead of the curve. Start thinking about on-site interactions (i.e. how buttons should act when clicked, transitions, etc.)

If you want to be on the UX side of the coin, I would still learn Axure and prototyping tools, but mostly for wire framing. I would then study on usability testing and how to gather site data. It will become very important in this type of role to understand how site statistics and user actions affect your conversion rate (in regards to whatever your site's call to action is).

I mean...absolutely do all you can to learn both UX/UI, but in a lot of companies, your designers will be separate from your analysts. You might want to consider what you want to spend the bulk of your time doing later down the road and sharpen that facet as much as you can.

Being solo is tough...I'd honestly try to learn what you can in that role and on your own then move on to a place that can facilitate further growth.

Good luck, OP.

u/Yogi_DMT · 2 pointsr/learnprogramming

I've found that the official oracle reference was very well written and helped me understand what's really going on with OOP, rather than sugarcoating things and holding off on establishing the more general concepts until later. The author explains things the right way from the get go, it's more of a bottom-up approach than a top-down approach like some of the other textbooks i've gone through.

I wouldn't necessarily say it's easier than some of the other resources but it is definitely better IMO. It's concise, so there won't be tons of examples or exercises and it won't take pages trying to reexplain the same concept in 10 different ways, but the information they give you is accurate and the examples they give you serve their purpose well.

The book is completely self contained and if you really want to learn Java i'd definitely say this is your best bet. Best of luck.

http://www.amazon.com/Java-The-Complete-Reference-Series/dp/0071808558/ref=dp_ob_title_bk

u/chromarush · 2 pointsr/userexperience

I am self taught and design applications for human and system workflows at a Internet security company. I am biased but I don't think a degree will necessarily give you more hands on skills than just finding projects and building a portfolio to show your skills. There are many many different niche categories, every UX professional I have met have different skill sets. For example I tend in a version of lean UX which includes need finding, requirements validation, user testing, workflow analysis, system design, prototyping, analytics, and accessibility design (not in that order). I am interlocked with the engineering team so my job is FAR different than many UX professionals I know who work with marketing teams. They tend to specialize very deeply in research, prototyping, user testing, and analytics. Some UX types code and some use prototyping tools like Balsamiq, UXpin, Adobe etc. There is heavy debate on which path is more useful/safe/ relevant. Where I work I do not get time to code because my team and I feel I provide the best value to our engineering team and internal/external customers by doing the items listed above. The other UX person I will work with me on similar activities but then may be given projects to look at the best options for reusable components and code them up for testing.

TLDR:

u/ProfessionalTensions · 2 pointsr/financialindependence

Honestly, I just read a lot of blog posts. Sometimes for fun, but most of the time when I'm trying to solve a specific problem. I also make sure to document what I'm learning in github (like this (not mine)) and throw up any personal projects I work on. I also try to creatively mention in interviews that I'm self-taught and always ready to learn more. I know I've gotten lucky along the way, but I also spend hours and hours applying to jobs.

If you want hard resources: the Kimball approach was one of the first things I got familiar with and Designing Data-Intensive Application is a great modern day resource. Both are pretty dry, but once you find yourself in a situation where their knowledge applies, you'll be thankful for it a thousand times over. I've even had the Kimball approach come up in an interview....so, you never know.

Edit: I also like to watch all of the PyCon videos that even remotely relate to data.

u/cabbagerat · 10 pointsr/compsci

Start with a good algorithms book like Introduction to algorithms. You'll also want a good discrete math text. Concrete Mathematics is one that I like, but there are several great alternatives. If you are learning new math, pick up The Princeton Companion To Mathematics, which is a great reference to have around if you find yourself with a gap in your knowledge. Not a seminal text in theoretical CS, but certain to expand your mind, is Purely functional data structures.

On the practice side, pick up a copy of The C programming language. Not only is K&R a classic text, and a great read, it really set the tone for the way that programming has been taught and learned ever since. I also highly recommend Elements of Programming.

Also, since you mention Papadimitriou, take a look at Logicomix.

u/omaolligain · 1 pointr/AskSocialScience

Why would you need to? The top commenter was saying the belief is the result of selection bias in popular culture.

If pop. culture caused us to legitmiatly see Scandanavian people, for example, on the street and believe them to be more beautiful on average how would that somehow invalidate OP's question?

OP is essentially asking a question about the role of certain social constructs. If you don't believe the construct exists fine, but we can go out and measure it via surveys and see if it does if we really wanted (and I assure you someone already has). The founder of OKCupid, Christian Rudder, wrote a book (Dataclysm) detailing all the beauty and attraction data they gathered on the dating website. It makes the case pretty solidly that some races/ethnicities are considered more attractive. Whether that's good or not is not really the point.

u/cl3v3rgirl · 2 pointsr/learnprogramming

You want to learn about design patterns. This repo has very nice code examples of many popular patterns that you would be asked about in a software engineer interview:
https://github.com/gennad/Design-Patterns-in-Python

Do further research on each pattern to have it explained. Just follow whichever article helps you understand the concept, language doesn't matter.

This book made everything click for me.

http://www.amazon.com/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330

While yes, it's in ruby, it's great for anyone who just wants to learn how to code easily maintainable projects. The wisdom in this book is beyond any language.

Coursera is a great resource as someone else has already mentioned.

http://pyvideo.org/ is an excellent resource if you want to just watch a talk. While there's a lot of Python, there are many talks on various generic subjects like you're looking for.

Edit: autocorrect

u/_Aggron · 2 pointsr/web_design

its hard to say where you should start picking up. If you've used VB (or rather, .NET), C# should be a good start. Its a very 'pure' oop language, microsoft has a lot of web stuff built on top of it that can make your life easier, and if your freelancing stuff doesn't work out, its a very popular language with corporate employers.

Python is a fine language. Rails, the ruby web framework, is more widely adopted than its python equivalents, and I personally prefer it. Both are very pleasant languages to work with, for a variety of reasons. My hesitation about learning these languages is that it might be more difficult to find resources that don't assume prior experience--ie, won't emphasis basics (especially object oriented programming and design).

I learned programming fundamentals in school, which I think gives me a more broad perspective than what you'd get reading tutorials. I think that some books would be a fairly good compromise, since they usually offer more depth than online tutorials. The definitive ruby book can be found here for free: http://www.ruby-doc.org/docs/ProgrammingRuby/

You might be more familiar with programming basics than I'm giving you credit for. Still, your frogger problem could be easily fixed by having a better understanding of OO programming and design. If you decide to go down the path of ruby, this book might be helpful: http://www.amazon.com/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330 . Your concerns about not having the right mindset can probably be put to rest once you've developed a good understanding of OOP--something you almost definitely wont get out of learning PHP first.

u/BadassRipley · 12 pointsr/librarians

>With that said, are there any languages that you think would be particularly good for me to know?

SQL, and then Python if you're interested in working with databases. HTML and CSS might also be good if you're interested in working in an academic or public library in the future.

>Which language(s) would be most helpful to learn first?

Whichever really, HTML was easier for me to understand at first since I wanted to see how websites worked before trying to do my own thing.

>Lastly, are there any specific coding resources you would recommend?

Two great websites are General Assembly or codeacademy which have individual lessons and show you the code right alongside the instructions.

W3schools has a bunch of tutorials on the basics.

For SQL, you can't go wrong with Ben Forta's Teach Yourself SQL in 10 Minutes

Feel free to PM me if you have any more questions!

u/VancouverLogo · 6 pointsr/ruby

I strongly recommended The Well Grounded Rubyist

This gives you a great foundation, it's extremely well written and a nice reference to go back to.

I also recommend Practical Object Oriented Design in Ruby

This book is just amazing. If you're new to object oriented programming, and even if you have a bit of experience, this is going to improve your skills dramatically.

Good luck!

u/reposefulGrass · 7 pointsr/learnjava

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

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

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

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

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

EDIT:

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

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

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

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

u/SandyZoop · 2 pointsr/PHP

My company is working on an introductory PHP book, but I'm not sure when it'll be out (my hope is soon). It will be up to date, at least.

Until then, the most solid introductory one I've found is Luke Welling and Laura Thomson's book. It, too, is a bit long in the tooth now, but it's pretty solid. They are working on a new edition, apparently, which I'll recommend until my wallet says to trash it in favor of ours. ;)

For free resources, as always, I'll plug PHP the Right Way which really does cover up-to-date practices for developing with PHP and also covers lots of PHP 5.4 and 5.5 stuff.

u/gfixler · 1 pointr/programming

> there's not really design patterns in procedural code

That's a plus for me. I'm not a huge fan of design patterns. I only made it 1/3rd of the way through "Head-First" before feeling too overwhelmed by the complexity.

> I'm relatively unfamiliar with functional programming.

That's pretty much everybody right now. I'm of the opinion that we'd all have a lot more fun and get more done more simply in FP (it's a working theory, based on my journey), so I say these kinds of things to get people interested, or even just informed if they haven't yet heard much, if anything, about it. That's my story - fighting for many years to get my ideas out in OOP, then told by a friend about FP, and now much more able to express what I mean.

> Never mind that function composition is about a thousand time less complicated than object composition.

I'm not exactly sure what object composition really is/means, but if what you say is true, let's use functions instead! I like the sound of "a thousand times less complicated" :) I've found working with simple values and functions to be a lot easier, yet more powerful, than trying to think in objects.

u/froggyenterprisesltd · 7 pointsr/statistics

I'm not a design expert, but I do know that just because Nate uses Excel himself doesn't mean that he's the guy generating these plots. I'm fairly certain that most of the journalists putting these together are using ggplot from R or python.

If you're interested in exact replicas, your language can do 80% of the heavy lifting by giving you the bones of the structure. But to really bring it home, you need a program like Inkspace or Illustrator to polish these up.

I don't think there's any language now that effectively uses good design sensibilities. This is discussed a bit in the book Visualize This by Nathan Yau.

For most people, it looks like the python / R tutorials listed here should get the job done.

edit: a word

u/samort7 · 257 pointsr/learnprogramming

Here's my list of the classics:

General Computing

u/Rehd · 1 pointr/SQLServer

My blog is advertised on my stack overflow account and github, all three are circular and refer to each other. I've kept my reddit account separate on purpose for identifiable reasons.

I'm still toying with the idea of posting occasional blog posts or creating a reddit account to link to my other social medias to help build a base. At the moment, the blog is really intended for employers and myself and it is not based on trying to accumulate or direct web traffic.

So while I'm happy to share my information, I don't want to link it from this account.

> It's incredibly generous and secure of you to actually share your notes and progress.

The notes are usually pretty barebones. Here's an example of the kind of information in my google sheet:

5/22/18

u/fieldcady · 1 pointr/datascience

First off, thank you for your service!

I hate to say it but you've got quite a lot of ground to make up. It's hard for me to gauge whether you have the coding skills needed. I get the impression that it's mostly sys admin stuff, which is good but not really sufficient (correct me if I'm wrong). You may want to teach yourself python if you don't use it yet.

The Coursera class on machine learning is something you should look into, since it will introduce you to a large body of knowledge that is critical for DS and probably all new to you.

I also encourage reading a book on data science, which would give you a good overview of the field as a whole and let you assess where the gaps are in your knowledge. I published one recently, which has great coverage of topics but has gotten mixed reviews so far. Here's another one which has better reviews, and is by a guy I know and respect.

u/patrickcoombe · 1 pointr/bigseo

here is my recommendation on how to learn technical SEO (assuming you already mastered using a computer)

  • Start by learning basic HTML, CSS and Javascript. I'd also recommend codecademy for this. Build a basic website with a few features. Focus learning on responsive web development.

  • Once you've gained an intermediate familiarity with all 3 of those, I'd recommend learning another advanced language. PHP / Python come to mind right away but you can get away with learning just bash.

  • Study databases and pick one to learn such as SQL / MySQL

  • Install a Linux server from top to bottom on a local machine, and learn enough Linux to make programs, edit server configuration files, optimize servers, local and remote filesystems, ssh, etc. Focus on Apache (web servers), response codes, optimization, etc.

  • check out the book .htaccess made easy on Amazon.

  • Learn about DNS / Bind - also practice by learning dig, nslookup, purchase a domain name, edit and fwd nameservers, etc.

  • Start studying the principles of UX (user experience) and check out Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability.

  • Fully digest Google's webmaster guidelines, and Bing's while you are at it.

  • Learn to use and administer an eCommerce and CMS framework. My suggestion is WordPress and Magento.

  • Read my complete guide to on-page SEO.

  • Pick an analytics platform (I use Piwik) but the popular choice is Google Analytics.

  • Learn the basics of regex to make your life easier.

u/g8trtim · 1 pointr/web_design

TL:DR but I agree with the headings. HTML, CSS, php, MySQL, js. In fact I highly recommend this book: http://www.amazon.com/gp/aw/d/0596157134. For some layout examples use Chromes Inpector to study other peoples sites and play with frameworks such as http://html5boilerplate.com/ and http://blueprintcss.org/. There are lots of great tutorials to get your feet wet with js and php scripts. In fact the book I suggested has awesome scripts you create that are reusable throughout lots of page designs.

u/thedaian · 3 pointsr/gamedev

Look up The Design of Everyday Things and Don't Make Me Think.

The first book is mostly about physical objects, and the second book is mostly about websites, but both cover UX fundamentals, and they're basically the essential UX books. That knowledge can pretty easily be applied to games.

Beyond that, the other important thing is just to run your game through testing sessions. Ideally, get someone who hasn't touched your game before, and watch them play it. For best results, record the entire play session on camera, and in game, and watch what they're doing in real life and in game. Recording all of that can be tough, and possibly expensive if you're paying your testers, but you might be able to find a local gamedev group and bring your game there.

u/[deleted] · 2 pointsr/Waco

I haven't had the time to read more than about 20 pages but it looks very interesting. Visualize This Looks pretty amazing as well, again, haven't had time to read it yet. The whole book as about effective data representation through non-standard graph and plotting techniques. The last.fm plots(artist play frequency over time) are a prime example.

u/an_ennui · 2 pointsr/design_critiques

Thanks so much for writing that Medium article and being open about your findings. This is an invaluable resource and something I’ll refer to in the future. The world needs more transparent heroes like you. It reminds me a little bit of this article I read a while back about all the “secret sauce” that goes into a successful product beyond simply design + development, from the perspective of a failed entrepreneur.

While it looks like you marketed somewhat, you may have not marketed quite enough—featured Tweets, Facebook posts—to your target demo. So that’s one guess.

> I think many users in the app creation space are very conscious of design, and may be dissuaded because of that.

Asking designers what’s wrong with my product? will always give you the obvious answer: your design could be improved. Which, for the record, you should always translate in your head to: As a designer, I would design that differently—not necessarily better or worse—just…differently. However, considering you’ve built a design tool for designers, that’s a very likely possibility not to be ruled out. For someone familiar with Sketch, e.g. the UI is very complicated and off-putting, yet doesn’t have basic operations such as alignment / distribution. A minor point is that the visual style of the elements are less appealing than both iOS’ and Android’s design, but as you said, that’s an easy fix.

It’s apparent how much work you’ve put into this, and I’d like to see this succeed. I’d also like to think the issues are solvable with a little design and UX TLC (ironically, yes—the marketing site’s UX for UX-App is somewhat lacking in communicating what the app does before signing up).

Anyway, I would suggest 2 things:

  1. Hiring an experienced UI designer to redesign the marketing site layout and app UI (not merely paying for consultation; there’s too much to address even for a formal consultation)
  2. Conducting in-person user testing to get the real user feedback you need. Chapter 9 in Don’t Make Me Think has the best, cheapest, most effective intro to user testing I’ve run across. If you follow that chapter (and book) you can’t go wrong.
u/DBA_HAH · 4 pointsr/cscareerquestions

I've never used Django so I'm making some assumption here based on my Rails experience. Their feedback is pretty good.

  1. You're not using inheritance in obvious places like a WeightedItem and a UnitItem should be children of a parent Item class (or some other better named class). I would put all similar methods in the parent class (item name, description) and then the business logic for calculating the price can go in the children classes. It's possible they wanted the Item class here to be abstract (so you will never have an Item object, only items of the subclasses).
  2. The Promotion and Coupons implementation feels odd to me, maybe someone else can comment on it though. I've never designed a checkout app so I haven't really thought about it but it seems that there must be a better way to handle this.
  3. They are correct in that your controller/views should not handle much business logic at all, controllers are just for using the parameters from your views and the data from your models to route what gets show to the user, what gets stored in the backend, etc. If you're putting business logic in a controller that's usually a sign that you need another model.

    ​

    cart_items = CartItem.objects.all()
    total = cart_items.aggregate(Sum('price'))['pricesum'] or 0
    coupons = Coupon.objects.filter(total_spending_threshold
    lt=total)

    Apply coupon if necessary

    if request.method == 'POST' and request.POST.get('coupon', '') != '':
    total -= Coupon.objects.get(pk=request.POST['coupon']).discount

    All of this should certainly be in a model. You might want a Cart model that holds Items. The Cart would then have a method you call total_price that would do the calculation inside that model and the controller would simply access that data.

    A Cart could also hold coupons and discounts too in whatever implementation they end up being.

    I would rework this controller quite a bit, I would create new routes so you have a `cart' controller with a 'reset' route separate from the 'checkout' route, no need to send those requests to the same controller action and use an IF statement to determine where to send it.

    So really your checkout action should basically be

    context = {
    'items': cart.items,
    'total': cart.total_price,
    'discounts': cart.discounts
    }

    return render(request, 'checkout/index.html', context)

    Having an action 'unitItems' that sits under the route 'checkout/unit_items.html' that isn't used for actually checking out is a bad design choice. If this view is used to view an individual item, just have it be its own path like '/items/item_description' or whatever.

    Same goes for 'addUnitItemToCartItems', this should just be a simple 'Cart.addItem(item)' line of code in your controller and then all the business logic goes in your Cart class. You could either return an error from that method or have something like Cart.errors that you check after (not sure what the best practice is in Django).

    Also you'll see the advantage of designing everything the way I told you is you will only need a single "addItemToCart" action and only a single "viewItem" action, no need to duplicate your code to handle for weighed/unit priced items. Any of those logical differences will occur in the classes which won't matter to the controller because they will all share the same interface that they inherit from the abstract parent Item class.

    My advice to you would be to get this book Design Patterns Explained. It's a bit expensive and "old", but the design patterns in it are timeless and get you thinking in the right way for OOP design. Another book that was hugely beneficial for me was Practical Object-Oriented Design in Ruby, but if you're focusing on Python maybe you can find something similar in that realm.

    My biggest tips for you would be 1. if you're repeating code like you did several times in your unitItems vs weighedItems implementation, then it's time to stop and figure out how you can DRY it up (Don't Repeat Yourself) 2. Models are for business logic, views/helpers are for display, models are for business logic.

u/purephase · 3 pointsr/rails

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

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

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

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

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

Good luck!

u/codeycoderson · 2 pointsr/cscareerquestions

This book and this one

I bought the first one a little while ago (a few weeks) and have really only sat down at my computer and worked through some stuff for 2 or 3 nights a couple hours a night and have my site up already. While it's suuuper basic and there's going to be a lot more to come and probably a lot of design changes, it's exciting to know that you have a working website up.

I'm a full time student with a part time job and I've been working on webdev in the little free time I have and it's awesome. Start with some books, see if you're interested, then continue. I don't have any info on colleges or anything, sorry, that seemed to be what you're looking for.

Also, /r/webdev and /r/web_design are great resources! Good luck!

u/jmwpc · 1 pointr/learnprogramming

> An understanding of design concepts is handy, but you don't need to be able to come up with the design yourself.

I think this line really sums it up best. You are likely to be tasked with creating some mock-ups, or adding a feature after the designer(s) have more or less moved on to the next project. In the case of the former, having some basic understanding of layout and design will help you create a usable product, even if it lacks polish.For the latter, being able to interpret the existing design, and extracting a few rules from it will let you deliver something pretty close to a finished product.

Working as a contractor or as part of a small team you sometimes have to wear multiple hats. I'm mostly a backend developer, but have (and still do) work on the front-end. There are a couple of books I have read and recommend for people in that situation. Neither will make you a full-blown designer, but do cover the essentials that anyone working on the front-end really should know.

Don't Make Me Think: A Common Sense Approach To Web Usability

The Non-Designer's Design Book

u/tech-ninja · 6 pointsr/ProgrammerHumor

Depends what you want to learn. Some of my favorites are

  • Code by Charles Petzold if you want to know how your computer works under the hood.

  • Peopleware if you want to learn how to manage knowledge workers.

  • Clean Code by Uncle Bob if you want to learn about good practices and program structure. Impressive content, covers much more than I expected.

  • Don't Make Me Think if you want to learn about usability.

  • Algorithms by Robert Sedgewick if you want to learn about DS & algorithms.

  • The Art of UNIX Programming by Eric S. Raymond if you want to learn about the unix philosophy. Lots of hidden gems in there. Have you ever heard: write programs that do one thing and do it well; don't tune for speed until you've measured; imagine all this knowledge distilled to you in one book.

    This a good list to get you started :) most of my favorite books are not language specific.
u/HadleyRay · 3 pointsr/web_design

Personally, I liked Learning Web Design 4th ed.. It gives you a nice overview of everything you're going to work with on the front-end.

Duckett's book is good and easy to read, but as far as learning, it didn't do it for me--you may be different.

You would also be well-served to learn some design theory. Don't Make Me Think is probably the penultimate in this area. Design for Hackers is also very good.

Learning jQuery is also a must. Code School has a great jQuery course.

Like /u/ijurachi said, a scripting language like PHP or Ruby on Rails would be a next step after that.

u/davomyster · 3 pointsr/dataisbeautiful

I agree that these data aren't nearly as interesting as the old posts but you're comparing two different blogs. The old one with all of the detailed insight was written by one of the company founders, Christian Rudder, who wrote an entire book on the subject. You seem like you're really into the deep data analytics side of things and if you or anyone else who loved the old style of posts hasn't read it, I highly recommend it: http://www.amazon.com/Dataclysm-When-Think-Ones-Looking/dp/0385347375

That blog was called OKTrends. It looks like it was last updated in 2014, the same year Match.com bought out OKCupid. Maybe Rudder didn't stick around to write blog posts anymore, I'm not sure, but this new blog we're all commenting about is called "The Deep End" so I suspect Rudder didn't write it.

Also, what makes any of you think that this simpler, less in-depth blog post has anything to do with a weakening of their matching algorithm in favor of more "folk wisdom and religion"? It's just a blog post.

u/soafraidofbees · 1 pointr/OkCupid

Har de har har to all the comedians replying to you... here are some non-joke answers:

  • Dataclysm, by OKCupid founder Christian Rudder
  • Tiny Beautiful Things: Advice on Love and Life from Dear Sugar, an advice columnist I happen to love who could teach a lot of OKC users a thing or two
  • OKCupid A-List gift subscription (you'd have to know their username... could maybe print out a homemade "coupon" for them to redeem with you later if you don't know it)
  • phone tripod, for taking better profile selfies
u/edwardkmett · 17 pointsr/programming

Three books that come to mind:

Types And Programming Languages by Benjamin Pierce covers the ins and outs of Damas-Milner-style type inference, and how to build the bulk of a compiler. Moreover, it talks about why certain extensions to type systems yield type systems that are not inferrable, or worse may not terminate. It is very useful in that it helps you shape an understanding to understand what can be done by the compiler.

Purely Functional Data Structures by Chris Okasaki covers how to do things efficiently in a purely functional (lazy or strict) setting and how to reason about asymptotics in that setting. Given the 'functional programming is the way of the future' mindset that pervades the industry, its a good idea to explore and understand how to reason in this way.

Introduction to Algorithms by Cormen et al. covers a ton of imperative algorithms in pretty good detail and serves as a great toolbox for when you aren't sure what tool you need.

That should total out to around $250.

u/CaptinShmit · 4 pointsr/PHP

> I'm trying to learn programming had have chosen as my language of choice.

What? What language have you chosen?! The suspense is killing me!

But seriously, this tutorial on Tizag was very helpful to me when I was first learning PHP a few years ago.

And the book PHP and MySQL Web Development is huge, and I never technically "finished" reading it, but it's certainly got some good stuff in it and I would recommend you check it out.

By and far, the best way to learn any kind of programming, is to just do it! Before I started reading programming books, I only knew exactly enough to do what I wanted to do. Choose a project to start with and keep Googling until you figure out how to make it a reality.

Let us know if you need any further help!

u/shipshipship · 1 pointr/cscareerquestions

Contribute to open source. Create something of your own, and contribute to other projects. Since you are basically self taught and you are going for your first gig, conveying to prospective employers that you care about design, testing, and that you are not a cowboy will help. Read and understand books like Practical Object-Oriented Design in Ruby. Also, don't be a one trick pony. Tackling JavaScript could be a next logical step. Needless to say, all your open source and projects you demonstrate should have good test suites.

Learn about the non-technical stuff as well. I think Land the Tech Job You Love is great, and you probably want to look into Cracking the Coding Interview as a starting point for learning more about algorithms and data structures. Upcase is another great resource for beginning/intermediate Ruby programmers who want to up their game. Start solving challenges on e.g. codewars.com.

u/thecometblast · 20 pointsr/TheRedPill

Some thoughts
One thing that got me thinking was his slide on the how and the why. Basically the chart looks like this:

Advice | Reason |
--------|-----------|
confidence | risk taking |
charisma | social hierarchy |
competence | provisions |
leadership | overall survival |

Talking to a stranger is risk taking. Having good charisma makes you seem higher up on the totem pole. Who gathered the most animals? A big question in women's hypergamous brain is who have the most provisions.

This got me to thinking about how I would develop social confidence? "The most important mark of confidence a man can do is to start a conversation with somebody... approach, approach, approach." (@~34:00)

So I brainstormed:

Advice | Reason | Action|
--------|------|--------|
confidence | risk taking | Approach
charisma | social hierarchy | Work in Bar/Meet Ups/ ...
competence | provisions | Job/Budgeting/Investing/show dangerous side...
leadership | overall survival | Get in Leadership Positions/Volunteer...

How feasible are the actions? Approaching can be done today by going outside, but I am [insert hamstering] and she is [hamstering]....

Here are the books he recommended @~40:18

  1. A Billion Wicked Thoughts: What the Internet Tells Us About Sexual Relationships

    Shows what men and women want.

  2. Dataclysm

  3. Date-onomics: How Dating Became a Lopsided Numbers Game

  4. What's the most popular book for women? 50 shades... (a man taking charge is attractive and dominant)

    Advice:

    Become keen observers of human nature and behavior based on reality. One way is to take walks with your dog, sit at a cafe and eavesdrop on people on dates.

    He also recommended getting social history books and getting a book list together. Not sure if the list above is the list or a quick glimpse.

    Background:

    Man is dying. I saw him on reddit offering free advice and skype sessions before. I thought there may be a catch and I was insecure. Fast forward today I see him on the stage, I wish I have taken up the offer
    and am thinking about spending a day with him. Usually never have someone like that in my life, wonder about how a day with him would be like. Crowd in the room are tired and silencing his side jokes, but sometimes the
    crowd (or one person) comes alive and responds. I would of been stoic/quiet/beta (on and on) in the audience, but would fantasize about his points. At end no one seem to have questions so he have to probe the audience "anyone want to know about my eye patch?"

    questions around @48:00

  5. your pickup line?

  6. charisma and leadership?

    etc.
u/mogwai512 · 3 pointsr/PHPhelp

> I want to return response in real time to javascript

I'm about to get really thorough with my response so, "hold on to your butts"

 

As /u/Mike312 hinted at, this is not how PHP and vanilla Javascript works, and as such you would have to seek alternative frameworks or languages(like Websockets, NodeJS) or you can keep reading for an alternate solution.
 

What you must understand is that PHP is code that lives on and is rendered on the back-end (server). That means that by the time the front-end (browser) has access to the page, the PHP code on the server has already executed.

 

Now that you better understand relationship between PHP & Javascript means you have two options, a simple one and a more complex one:

 

Simple Option: Abandon real-time
 

Since you seem to be a beginner when it comes to PHP, this is the option I recommend as it is the simplest and fastest. In this case, you would have something on the front-end, like a button, that would call a new page. This page will render the results of the function I provided you.
 

To break it down:
 

  1. You press a button in the browser.
     
  2. The button redirects you to a new page.
     
  3. The new page has the PHP function I provided you above, and runs it.
     
  4. A page is the rendered to the user saying something like "After X attempts, here are the results: "
     
     

     

    Complex Option: Explore AJAX
     

    AJAX or Asynchronous JavaScript and XML allows your browser(front-end) to make calls to your server (back-end) without reloading the page. This means that, as an example, you can create a button on the front-end that executes a javascript function. The javascript function would then make an AJAX call to your server, and you could return that server data WITHOUT having to reload your page. Please see the link I provided above for a very good example.

    I won't write up full on code for you that shows you how the HTML/JS/AJAX/PHP all interact but, here is an outline of how I would do it:
     

  5. Modify the fgcContents function I gave you above to only take in a URL, and only return results and data. Since you are using AJAX, your front-end should manage and return the number of attempts. This will be explained in more depth later

  6. Create an HTML page with a button.
     

  7. Have the button trigger a Javascript function
     

  8. Have the JS function define two variables, the number of attempts and the URL to hit (the url is where your PHP code will reside).
     

  9. With those variables defined, build out your AJAX request using the url variable, but do NOT call it yet. Instead, define a loop that will repeat X times, with X representing the variable you defined above as the "number of attempts".
     

  10. Inside the loop, make the AJAX call, but also add checks for whether or not the AJAX call failed or succeeded.
     

  • If the AJAX call succeeded: This means that the AJAX call was successful, it does NOT mean that your fgcContents function was successful, so you need to examine the results of the call (which should be the results of the "fgcContents" function) and use javascript to update your HMTL. For example, if "fgcContents" returns an array where "results" is TRUE, then you can update or add some HTML on your page that says "Attempts: 1 and Data: your_data_here". If results is "false" ("fgcContents" returns an array where "results" is FALSE), then you can update your HTML to list out the number of failed attempts, and with each failed attempt, the users page will update, thus providing you real-time results.

  • If the AJAX call failed: Again, this does NOT mean the fgcContents function failed, it just means the AJAX call did not go through. This can happen due to errors in your code, network issues, etc. Either way you will need to capture this and report it to the user somehow.

     

    I know this is a lot of info to take in, but it should help implement a simple solution, then as your knowledge grows you can implement the complex solution.
     

    As a side note, if you are really looking into learning front-end/back-end development, I recommend the following books:

    Web Design with HTML, CSS, JavaScript and jQuery Set

    PHP & MySQL Development
u/MercurialNerd · 2 pointsr/mysql

I've studied for the 5.0 Developer cert, and the 5.6 Developer cert, and I've also mentored about 100 students through these exams. Most/all of the students were new to database development, so I had to teach them from zero to Oracle Certified in the space of about 10 weeks.

To echo what /u/justintxdave said, the 5.6 Developer exam is tough. A lot of the questions are deliberately obtuse in my opinion and seem designed to catch you out. Plus they have questions on Java talking to MySQL, PHP talking to MySQL and Microsoft .NET talking to MySQL. This seems a little unfair to me - if you're a PHP developer, you're unlikely to know .NET and vice-versa.

The 5.0 Certification Study Guide is still a good resource, but you need to be careful to identify those things that have changed from 5.0 to 5.6 - e.g. DATETIME, TIMESTAMP, SQL MODES, and there are topics in the new Developer exam that were in the old DBA exam - transactions, foreign key constraints etc. The sample questions on the DVD of 5.0 book are a good practice tool.

Here's the list of topics I studied for the 5.6 exam, and what books/resources I used.

Study Guide refers to the 5.0 Certification Study Guide , and the relevant chapter numbers.

Head First SQL is a very basic beginners guide to SQL that you probably don't need.

I also used Paul du Bois's MySQL Developer's Library to fill in some blanks.

There is was a real need for an official 5.6 Certification book, but at this stage an 8.0 cert is probably just around the corner. I always had a notion I might write a 5.6 book, but life got in the way :)

Best of luck with the exam!

u/alexcp · 1 pointr/web_design

Html/CSS are quite easy to learn I think, a good place to start would be here.
You should not focus about javascript at first, just use a librairy like jquery and jqueryui to do all the basic stuff. You should look into php wich is much more useful.

I would recommend this book Learning PHP, MySQL, and JavaScript, also this one is pretty good Professional Web 2.0 Programming.

For books about Webdesign I can recommend the smashing book 1&2 by Smashing Magazine

u/Echohawkdown · 1 pointr/design_critiques

I'd strongly recommend you study Swiss Style/Swiss Design through Google. Most of the issues I have with your design, which is echoed others, is that your site's design has too much stuff going on that distracts the eye.

Modern digital design, which is heavily based off of Swiss Style/Swiss Design, focuses on using transitions (e.g., blue background area to white background area) for borders, sans-serif typefaces, repetitive elements (objects which behave/function similarly should look the same; applies to static menus as well as interactive objects), and other principles, all with the express goal of focusing on the message/letting it "breathe". In short, "Don't Make Me Think".^^1

Here's some primers I found on the topic:

Tons of Posters - note the general lack of explicit borders; instead, color changes mark object borders
More in-depth discussion of the history of Swiss Design (also has a ton of posters)

Some more modern sites that I feel would act as good guidelines for the kind of data you're laying out:

TicketLeap
Genymotion - More memory efficient Android emulator; more applicable since it has mockups of software
ProjectPsync - site of /u/Psyncitup; more applicable since it has mockups of software

Another point I want to make - your logo is cute, but has too many colors and looks extremely angular. See if you can clean it up or make it clearer what you do - logos carry a lot of visual weight AND brand recognition, and though it won't break a website (particularly one made as a hobby), it can easily change how it's perceived.

Last point - all those resources I just used don't just apply to web design; some of it will also carry over to your software development as well. Keep that in mind, because there's very few people who are good at both developing and designing.

 

^^1 Been a while since I've read it, but there's a book out there by the same name ("Don't Make Me Think") which was, at the time, treated as the bible/guidebook of web design. It's just been updated this year, so I can't vouch for this newest version, but the second edition is just as good, despite being published in the early '00s.

u/pinkwetunderwear · 1 pointr/web_design

You want to learn HTML, CSS and JavaScript. When you have the basics covered look up some CSS pre-processors like LESS, SASS and Stylus. Then consider learning a Javascript Framework like Vue, React and Angular. I recommend trying all of them and see what you like.

For software all you'll need is a text editor, most people would recommend Visual Studio Code

When learning the basics it could be helpful with a tool like BrowserSync which will auto refresh your page after save, instead of manually having to refresh your page.

If you want to read a book I can recommend Steve Krug's: Don't Make Me Think

u/theguywithballs · 4 pointsr/SQL

I would be useful to find out which specific DBMS they use but in the meantime I would recommend getting SQL in 10 Minutes, Sams Teach Yourself.

The book teaches ASNI (American National Standards Institute) SQL - all the general main concepts like SELECT, UPDATE that all DBMS share.

It has 22 chapters that each take 10 mins to read (but you should spend more time after each chapter practicing examples). It was incredibly helpful for me when I started learning as i knew 0 about SQL. There's a reason that books it #1 Best Seller. Once you find out what database they use you can learn DBMS-specific functions in addition.

u/metasophie · 3 pointsr/userexperience

> Why do people use Sketch more over PS?

Sketch is light weight, easy to use, and largely focused built. PS is a generic image editing tool that isn't.

Don't get caught up in tools though. UXD is a process not a toolset competency.

> Do you guys have any beginner friendly tutorials for a material or flat design interface?

A large chunk of user experience design comes from interaction design which inherits a sizeable chunk from anthropology. So, instead of starting you off on a tutorial which will likely focus you on technology as the process I'd rather start you off with reading.

Plans and Situated Actions - Lucy and other researchers at XEROX Parc defined Interaction Design. This is the birthplace of the idea.

https://books.google.com.au/books/about/Plans_and_Situated_Actions.html?id=AJ_eBJtHxmsC&source=kp_cover&redir_esc=y

Lucy Suchman again - Human-Machine Reconfiguration talks about a higher level of thinking when it comes to how people interact with machines.

https://books.google.com.au/books/about/Human_Machine_Reconfigurations.html?id=KES20V7aP4YC&source=kp_cover&redir_esc=y

Alan Cooper is one of the early leaders in Interaction Design. In this book he goes over the 101 of user research and how it has been applied in digital technologies.

https://www.amazon.com/About-Face-Essentials-Interaction-Design/dp/0470084111

Love him or hate him Donald Norman helped define early Usability and the transition to Interaction design.

https://www.amazon.com/Design-Everyday-Things-Donald-Norman/dp/1452654123

Don't make me think. Was one of the definitive books highlighting the approach of user centred design.

https://www.amazon.com/Dont-Make-Think-Revisited-Usability/dp/0321965515/ref=pd_sbs_14_t_1?ie=UTF8&psc=1&refRID=TN8VJJHK9NKZ1KAA10V5

After you get through all of that I recommend that you spend some time in whatever tool you think works for you and then replicate somebody else's design. Say there's a mobile app (choose a small app) that you use all the time. Replicate every single screen and document with a flow chart how you interact with it to get to every single screen. Break them all up into individual interactions.

Make sure that you design it in the most reusable way possible. If your tool lets you make your own widgets then use them. If your tool allows you to inherit multiple layers, like Axure, then use that too.

Now find some people and test with them. Do some User Testing on the product to find flaws. Do some high level User Research to find out what their core goals are. Iterate. Don't forget that you're an amateur, it's okay to reuse your friend base.

u/Trentskie · 1 pointr/webdev

Triforce is right about the Jon Duckett book. It is an excellent resource that is pretty to look at, as well.

I learned all of my HTML5 & CSS3 basics from Learning Web Design by Jennifer Robbins. It is a great resource, and provides great design exercises for you to practice on.

Given your experience, you will need to bypass the first few chapters. Fortunately, the book is well-organized. This will allow you to only focus on the your particular area of need, and help when referencing the book after you finished learning the basics.

u/jackmaney · 2 pointsr/datascience

Besides Python, I'd also recommend getting proficient in SQL. It's often quicker to perform aggregations and other calculations in the database. If you're already familiar with a programming language (especially C++), then SQL should be no trouble. While there's plenty of stuff online, I've found Head First SQL to be a good introductory book for folks who have never seen SQL or touched a database before (it may or may not be too elementary for someone that can already program, however...).

Data scientists don't have to know as much programming as the average software engineer, but you should be comfortable enough to adapt or wrap code around existing libraries. For example:

  • Clustering a dataset via k-means for several different values of k (using a built-in library such as scikit-learn), and then using the average silhouette coefficient to find the best value of k.

  • Combining cross-validation with reservoir sampling.

  • Implementing an algorithm that isn't yet implemented in a third party library.

    In general, don't be comfortable with just using software as a "black box" for statistical and scientific computing. Have at least some idea of what's going on "under the hood" when that black box is used. That will put you far ahead of the game.
u/jozefg · 12 pointsr/programming

I'd suggest

  1. Learn You a Haskell For Great Good
  2. Real World Haskell (Though some parts are a bit dated)
  3. Parallel and Concurrent Programming in Haskell
  4. Purely Functional Datastructures

    Now past this it's not entirely clear where to go, it's much more based on what you're interested in. For web stuff there's Yesod and it's associated literature. It's also around this time where reading some good Haskell blogs is pretty helpful. In no particular order, some of my favorites are

  5. A Neighbourhood of Infinity
  6. Haskell For All
  7. Yesod/Snoyman's blog
  8. Edward Kmett's stuff on FPComplete
  9. Edward Yang's blog
  10. Lindsey Kuper's blog

    And many, many more.

    Also, if you discovery type theory is interesting to you, there's a whole host of books to dig into on that, my personal favorite introduction is currently PFPL.
u/milky_donut · 4 pointsr/web_design

Aside from making things look nice they also have to function well too. Design should go hand-in-hand with user experience. I suggest reading the book Don't Make Me Think to get an understanding of why things are laid out. You can have a nice website but if it doesn't function well your users will opt out in coming back.

Start going to your other favorite websites and find what they have in common and what's different and keep notes that you could back to and reference; you'll start to notice a common theme in layout. There's Behance, Awwwards, Dribbble (though don't take too much away from here), Smashing Magazine, A List Apart, and more.

Learn color theory and typography -- I suggest Thinking with Type. Like another user said: draw inspiration not only from web design, but take inspiration from other sources.

u/gibbons1980 · 1 pointr/csharp

I think learning OOP is a very good idea. There are tons of books on the subject but I would recommend these 2:

Uncle Bob's Agile Principles, Patterns, and Practices in C#

This book will teach you not only about good OOP principles (SOLID principles) but a also a lot about other programming practices such as testing and refactoring.

Sandy Metz's Practical Object-Oriented Design in Ruby: An Agile Primer

Don't worry about being a Ruby book, you should be able to understand the concepts (and learn some Ruby). Sandy ha a very good way of teaching how to think about OOP.

Hope it helps.

PS: I'm curious: what exactly did you struggle with? What made you think you should learn OOP?

u/CunningAllusionment · 1 pointr/godot

Wow. Thanks for taking such a close look at it. I took a summer class on deterministic cellular automata that generate chaotic patterns like this one (we basically just worked off of Wolfram's "New Kind of Science"), so it's pretty exciting to encounter such a pattern unexpectedly "in the wild".

I'm not sure if it's clear what I intended this thing to do, but the idea is that on frame x+1 squares are black only if they had an odd number of black neighbors on frame x and white otherwise.

What seems to be happening instead is that each square's color is being updated as its being checked, so square (1, 1) is determining it's state by the new state of squares (0, 0), (0, 1), (0, 2), and (1, 0) and the current state of the other four squares its adjacent to.

I don't really understand why it's doing that because neighborCount is incremented based on a check of pixelArray[x][y] and is then used to set a value in newArray[x][y] which is then used to set color. There shouldn't be any way for neighborCount to see values in newArray, but there is somehow. I can only think that somehow pixelArray is being constantly updated to be the same as newArray, but I don't understand why. They're set to be equal in only 2 locations, at the end of setup() and after next_frame() is called.

Does using draw rect improve performance? I've found it takes about a half second to draw each frame with 10x10 squares. I've assumed this is due to it checking almost 60,000 if statements per frame, but maybe having that many nodes loaded is a memory sink?

Thanks again.

u/wyzaard · 3 pointsr/IOPsychology

If your calculus needs brushing up then I am guessing that you will probably benefit from putting some effort into linear algebra too. Just a guess though.

The Sage Hanbook of Quantitative Methods in Psychology is aimed at advanced graduate students and working researchers. The Oxford Handbook of Quantitative Methods in Psychology, Volume 1 and Volume 2 is even more comprehensive with Volume 1 covering some more philosophical topics not covered in the Sage Handbook.

An introduction to programming and computer science like this one (there are many others) is probably a good idea. You can also jump straight into a basic introduction to data science like Data Science from Scratch: First Principles with Python. The author can be amusing. Consider the quote in the preface:

> "There is a healthy debate raging over the best language for learning data science. Many people believe it’s the statistical programming language R. (We call those people wrong.) A few people suggest Java or Scala. However, in my opinion, Python is the obvious choice."

u/shinigamiyuk · 2 pointsr/learnprogramming

I learn by doing: Become a PHP developer from Treehouse. I have found that treehouse is pretty basic for learning, but you are leaning by project based. They do keep adding stuff though, this is not apart of the learning adventure but they just finished using PHP with MYSQL. I like the flow and challenges and type everything out that they are doing. There is also this great PHP book, it was written in 2008 but I didn't have any trouble with the text, or project. You basically build a dynamic web app that you keep adding features to. First book I have picked up that kept me interested from chapter to chapter. I normally get programming books and never read them, or get super bored with them.

u/black-tie · 3 pointsr/Design

On typography:

u/FunkyCannaHigh · 22 pointsr/devops

https://landing.google.com/sre/books/

​

SRE book is free, workbook is not.


https://cloud.google.com/solutions/best-practices-for-operating-containers


https://cloud.google.com/solutions/about-capacity-optimization-with-global-lb


Some of this is google cloud specific but the principles are the same with on-prem or a different provider. "State-of-the-art" deployments are usually learned by using best practices since each distributed app's deployment will vary. These books will help with best practices:



https://www.amazon.com/Microservices-Patterns-examples-Chris-Richardson/dp/1617294543/


https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321/


https://www.amazon.com/Designing-Distributed-Systems-Patterns-Paradigms/dp/1491983647/

u/TonySu · 3 pointsr/learnprogramming

Not a website designer, never designed a full website, but recently read Don't make me think. Though I was reading it for ideas in general usability, it's focussed towards websites. It's a pretty short book that you can pretty casually get through in a few afternoons.

Styles and schemes are easy to change, making a robust and usable website should be top priority.

u/Blatherard_Osmo · 3 pointsr/webdev

Ruby and Python are both mature languages with similar and overlapping user bases. There's not a whole lot different between them, and plenty of cross-polination. Learning to use Ruby effectively will probably make you overall a better programmer, and also help you understand Python better, much as learning Spanish will enhance your understanding of French.

If you decide to keep trying Ruby, I'll make a plug for a book written by a friend of mine: The Well-Grounded Rubyist by David Black. It is a fantastic grounding in Ruby and isn't specifically about Rails at all (I don't even recall if its mentioned)

All that being said, you probably shouldn't bother doing things that you're not enjoying if you don't have any pressing reason to do so. Dig deep into python if that's what you're digging. Just don't become a language bigot, because there's already enough of those to go around.

u/iamktothed · 4 pointsr/Design

Interaction Design

u/iacobus42 · 4 pointsr/statistics

Anything by Tufte and the Flowing Data book and blog are great starting places. Tufte is more theory driven, for lack of a better term, while the Flowing Data sources have more "worked" examples (with R, Python, etc).

It would be worth learning ggplot2 as well if you are interested in data visualization as that seems to be the current "standard" tool. Hadley Wickham's website and UseR book on ggplot2 are great places to start.

Relatedly, Wickham's PhD thesis is all about tools and strategies for data visualization and can be found for free on his website. There is also an hour long seminar and slides to go with the paper.

u/RamonaLittle · 1 pointr/learnprogramming

I'm currently reading Head First PHP & MySQL and think it's excellent. I started some other books, but this one seems to present everything in the most logical order.

I'm also reading sections of the official MySQL manual -- I downloaded the 3000+ pages into my Kindle so I can carry it around with me and bookmark pages. It has a lot of useful details that books don't seem to mention.

Probably the most useful learning tool is actually trying to do something with it. I came up with a couple little projects which eventually may be a useful website, so I'm working on that when I can.

Hope this helps.

u/_starbelly · 3 pointsr/guitarpedals

Thanks! I can't wait to slay this beast. I timed my defense such that I could go let it all out at a Power Trip show a few days later, haha.

Python seems pretty intuitive to me in my initial tinkering; I also come from a Matlab/R background. I'll definitely check out pandas and scikit-learn! Do you have any suggestions for resources to efficiently learn Python? I'm working on Data Science From Scratch right now.

I have a friend who recently graduated from my same program and is now working as a data scientist at a financial startup in CA. He said the exact same things. I can't wait to make more than just slave wages....

One more question: Any recommendations for an R Studio-like IDE for Python in OSX?

u/AmazonInfoBot · 1 pointr/BustyPetite

Dataclysm: Love, Sex, Race, and Identity--What Our Online Lives Tell Us about Our Offline Selves.

Price: $10.87

Hi, I'm Amazon Info Bot. Every time you purchase an item through one of these links, 10% of the products price goes to the American Cancer Society.

1st Month Donation Proof Please Upvote This Comment so that I may comment more, and raise more.

[My Motive](/s "My Aunt passed away this last year from Breast Cancer. I'm in my 1st semester of Computer Science and decided to take on a project that would make a drop of difference on this world and hopefully contribute to stopping others from losing an aunt they loved as much as I did.") | [Why Not Use Amazon Smile](/s "Amazon smile gives .5% of your purchase to charity, amazon affiliate gives ~10%. That is a 20x greater affect per purchase."| Amazon Music Unlimited 30-Day Free Trial | Amazon Prime 30-Day Free Trial | 6 Months Free w/ Prime Student

u/joemi · 31 pointsr/ruby

I might not be the best person to answer this for you, since I learned Ruby after I already knew programming in general (JS, Python, C, Java) so learning Ruby for me was more about figuring out the Ruby way of doing things than learning how to program. But these are some resources I see recommended a lot that appeal to me:

  • Why's (Poignant) Guide To Ruby (free online book -- a whimsical illustrated intro to Ruby basics -- you might already know some/most of this, but it might still be a fun read)
  • Learn Ruby The Hard Way (free online book, I think? -- a less whimsical intro that goes a bit deeper than Why's guide)
  • Practical Object-Oriented Design in Ruby by Sandi Metz (non-free book, also available as an ebook maybe? -- for when you want to get deeper into Ruby beyond basics and start thinking about programming patterns and program design)
  • Ruby's Core API documentation (you can learn a lot about Ruby just from the documentation of its own modules and classes and methods)

    I've been meaning to read Sandi Metz's book since I've watch some talks she's given and they've been very informative. And searching/browsing/reading the Ruby documentation is something I end up doing almost every day, whenever I'm programming. It's a good reference if you can't quite remember the name of a method, and it's also great to click the "click to toggle source" link so you can see how Ruby's own methods are defined. Some of the most basic and important methods are going to be in C, but a lot of the methods (especially in the std-lib) are themselves written in Ruby, and the C is often simple enough to understand what it's doing if you understand Ruby but don't have any experience with C.
u/wisam · 1 pointr/learnprogramming

Java, A Beginner's Guide. is a well-paced book that's not huge (about 700 pages).

Java, The Complete Reference. by the same author of the above book is, as the name suggests, a huge comprehensive reference (about 1500 pages). I wouldn't use it to learn the basics, but would use it later as a reference.

Introduction to Java Programming, Comprehensive Version. is a slow-paced huge book (more than 1500 pages) that will benefit a beginner a lot.

Now if you are in a hurry and you need to go through the basic s quickly and possibly miss some details, I would recommend Think Java. It's a small (about 300 pages) free fast-paced book that will get you hooked quickly.

u/duggieawesome · 3 pointsr/ruby

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

Lastly, you can always skim through the Ruby docs.

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

u/grandzooby · 1 pointr/Python

I'm on a similar track to you, except I'm re-starting my course of studies. Although I've programmed a lot in other languages, I've decided that for my coursework, I need to be able to use Matlab/Ocatve, R, and Python.

I'm just starting out in all 3 paradigms but with Python I have decided to focus on Python 3 syntax and not Python 2. However that's led to some challenges. Many of the tutorials and books cover v2 syntax, which can make things more difficult when you're just starting out.

I started by learning something "simple" like multiplying two matrices and immediately had trouble figuring out the Python method(s) available. That led to this post:
http://www.reddit.com/r/learnpython/comments/ypog9/matrix_multiplication_in_python_3_with_numpy/

Where I did get some very helpful answers.

I'm also learning linear algebra in the process, which adds its own challenges that you shouldn't have.

I also have a couple books on pre-order from Amazon, though I think you can get the PDF from OReilley now:
Python for Data Analysis and
SciPy and NumPy: An Overview for Developers

Reviews of the pre-prints seem pretty positive and they're not too expensive even if they don't turn out to be very useful.

u/nekochanwork · 2 pointsr/learnprogramming

Expert F# 4.0 by Dom Syme (creator of F#) is a useful reference for people who already have OO programming experience, but want to learn FP. It's also a .NET language, so it interops with C# with minimal effort.

The F# Wikibook is a little dated, but otherwise a useful free reference for people learning F# for the first time.

Purely Functional Data Structures by Chris Okasaki is still the best reference available for data modeling. It uses SML as it's reference language, but almost all of the examples can be converted to equivalent F#, Haskell, or Scala.

u/AdvancedPizza · 2 pointsr/rails

This. The tests and charity model look good, but the website controller has too much logic and is tricky to follow. Beginning on line 9, there are 4 nested ifs / unless, which could be improved.

This would be something that should be refactored into a number of smaller methods inside a model like models/donation.rb or something alone those lines.

I highly recommend Practical OO Design in Ruby by Sandi Metz. Her talks and writing are excellent and approachable and can applied in a number of contexts.

u/dc_woods · 9 pointsr/web_design

As a person with no education beyond high school, take all that I say with a grain of salt. I'm a pretty successful web designer and front-end developer, having working with four startups and done a year of freelancing.

It is not uncommon to hear industry peers criticize the education system as it pertains to web design because often the practices you learn are no longer the standard or relevant. I've heard of many stories where designers exit college (with no working experience, obviously) and have an incredibly difficult time finding work for the reasons I listed above.

Education has never been brought up at any of the companies I've worked or those that I've consulted with. I believe the reason for this is that I have a body of work to show along with whatever reputation I've garnered on Dribbble, say.

All this being said, it is entirely possible for you to develop your skills on your own, such as I did, and find work. I'm happy to list all the reading materials that I own that helped me get where I am now. I'll list what I remember but I'll have to go check when I can get a second:

Hardboiled Web Design
HTML5 for Web Designers
CSS3 for Web Designers
The Elements of Content Strategy
Responsive Web Design
Designing for Emotion
Design is a Job
Mobile First
The Visual Display of Quantitative Information
The Elements of Typographic Style
Thinking with Type
The Icon Handbook
Don't Make Me Think

If you invest your money in those and actually read them, you will be well on your way. Feel free to ping me. Good luck!

u/AlSweigart · 2 pointsr/learnprogramming

Focus on UI design.

A lot of people tend to think of programming as very math-heavy (it's not, unless the domain you're writing software for is weather simulations or something that itself requires math). So we end up thinking the technical side is important and the "soft skills" are unimportant (or at least, not worth including in our study time).

I'm old enough now where I still like programming, but I've realized I don't care about code; I care about making software that people actually use and find useful. Building a tesla coil in your garage is cool, but so what tons of geeks have done that. I want to make something useful, and it doesn't matter how elegant your algorithms are if your program is confusing, unusable, or solves the wrong problem.

I'd recommend these books, in roughly this order:

u/berkes · 47 pointsr/webdev

Exactly this.

For quite some projects, I had to find a freelance frontender or webdesigner.
Here's how that goes:

  • I post an ad, classified or get names via referrers.
  • I wade through that to make a shortlist of 20+ candidates.
  • One by one I visit their sites, looking for a Resume or a Portfolio.
  • One by one, I have to wade through weird navigation, presentations, fucking horizontal scrolling, skipintros. I even had to open the source to find what fucking image represents a link to the portfolio. I've had to wait for some fancy JS caroussel to take me through the portfolio. I've had to watch videos, in order to see the resume.

    I'ts a great way to separate the rubbish developers from the good ones. If you manage to present your information on one page, with a few clicks to learn more about a certain project, in clean, simple HTML, preferable recenly updated to work on mobile (responsive): you're through. But if you cooked up your navigation while on LSD using Suprise.js or WhittyScroll.js you're out.

    Browsing 20+ sites from designers truly is a hell. So, nowadays, I simply ask them to email me the resumes.

    Because I too realise that a good webdeveloper or designer is hired most of the time. And as such, won't have time to redesign his or her site after every new change of technology. I can understand if your site looks like it was from 2008, if you've been hired and busy since 2008, it's actually a good sign.

    But really. Don't make me think. Ever.
u/fedekun · 1 pointr/webdev

Personally I tried learning from books and I found it quite tedious. There's a lot to cover and if you already have experience with other MVC frameworks you feel like you can skip most parts. Probably the best Rails-specific book is Agile Web Development with Rails.

Personally I learnt using CodeSchool and their Rails courses. That way I started hacking stuff myself, some of the Rails Tutorial also doesn't hurt, although I got bored halfway though but still, good stuff, you learn about manually handling users accounts. I dislike cucumber though, but you can ignore that part and/or use other testing library (which you learn in CodeSchool too).

Once you know the basics and the idea of Rails you can get away with google and the official ruby guides for reference, and you really need to pay attention to good OO practices in Ruby, books like Practical Object Oriented Design in Ruby and Confident Ruby are great for overall ruby coding standards :)

u/octopi-me · 2 pointsr/userexperience

Sorry to hear that! I struggle with buy-in of the same things as a UX designer, so trust me it's not just you.

First struggle is with internal projects, they are typically a rocky road and hard to get finished so keep that in mind and don't beat yourself up. On a positive note, glad you are noticing that UX is needed!

Next you need to get buy-in from others in your company. Let them know that spending strategic/design hours upfront solving problems will save loads of money in the end by reducing development time and customer retention. Find some case studies or do some on your own for example. maybe offer some A/B testing of the current product to show them how a users experience and drive revenue/conversions.

For you, Id suggest a good place to start (if you haven't already) is reading Steve Krug's book titled "Don't make me think" (revised edition). https://www.amazon.com/Dont-Make-Think-Revisited-Usability/dp/0321965515

This will help frame your mindset around user centered design. Also wouldn't hurt to read Nielson Norman Group's 10 Heuristics for User Interface Design - https://www.nngroup.com/articles/ten-usability-heuristics/

These are foundation pieces every UX designer/User Centered developer should know.

Hope that helps!

u/dan0189 · 0 pointsr/learnprogramming

Great resources for learning:
http://www.w3schools.com/php/default.asp
Books:
Head First PHP & MYSQL AND
PHP 6 and MYSQL 5.

The trick is to repeat the same things over and over and then you will begin to pick them up and remember them off by heart.

I had been idol for the past month until a couple of days ago when I started developing an old site and It took me a little while to remember basic things like creating a class or remembering certain queries.

It's a bit like riding a bike. Just hang in there.

u/beyphy · 3 pointsr/excel

I started learning SQL by reading Itzik Ben-Gan's T-SQL Fundamentals. It's a fantastic text that I read cover to cover. One of the chapters on ACID was extremely boring (that's mostly DBA stuff) but other than that I thought it was very interesting. Microsoft also has an EdX course that's similar to the book if you'd prefer to use that.

As far as applying it goes, I set up multiple databases. So I had SQL Server, postgres, Access, and SQLite. I didn't get to apply it at my last job, but our DBA was comfortable enough with my knowledge to create a schema for me so that I could use postgres instead of having to use MS Access. I also personally found that employers were fairly impressed by it.

u/puppy_and_puppy · 1 pointr/MensLib

Weird how I just finished the book Designing Data-Intensive Applications, and it ended with a section on ethics in computer science/big data that ties into this article really well. I'll add some of the sources from that section of the book here if people are curious. Cathy's book is in there, too.

u/KSKWEM · 2 pointsr/webdev

If you have any experience with manipulating tables in general then learning how to use a (MySQL) database is relatively intuitive, provided that you aren't concerned with optimization issues such as normalizing tables, scaling problems down the road, or managing any fancy relationships. I'm sorry for how demoralizing this sounds but... based on the needs you've described you could probably teach yourself all you'd need for that project and how to interact with a MySQL database via PHP in less time than its taken you jump through all these hoops trying to use Google spreadsheets.

Here's a good and relatively cheap book on the matter.

I read that book as a CS undergrad before taking any database classes and it helped quite a bit; in particular the chapters on MySQL are very concise and easy to read. Even if you've never seen PHP before just seeing MySQL syntax for the first time hopefully leads to a "oh well duh that's all very intuitive" moment. Hopefully it will help give you a better understanding of the larger picture and how these languages interact with each other.

Note: There are tons of other great, free resources online that you can peruse at your leisure without paying for a book.

u/chocolatemario · 1 pointr/learnprogramming

I think an example might be, do laundry: repeat every 1 week or so.

So your primary table would be something like this:

CREATE TABLE task (
User string varchar(255) NOT NULL,
TaskName varchar(255) NOT NULL,
Date DateTime DEFAULT(getdate()),
... any other fields you want
PRIMARY KEY (User, TaskName, DateTime)
)

Forgive me if my syntax is wrong, I don't sql all too often.

Anyway, suppose a user logs in. When they login you are able to:

SELECT * FROM task where User=/username/
Excellent, you can now render this on your front end and update it as needed. Just remember, if you make changes on your front end, you need to update it on your back end :).

If you are interested in getting some of the theory behind DBs, I would recommend checking a book out. I used this in school. It treated me pretty well, but there is no need to read every chapter! (seriously, unless you want to be a DBA). I would look up the important subject covered in some schools curriculum and go from there. Learn some relation algebra, ddl, dml then data normalization and you're off. DBs are pretty easy to work with.

u/RangerPretzel · 1 pointr/csharp

I found the HeadFirst series on SQL helpful: https://www.amazon.com/Head-First-SQL-Brain-Learners/dp/0596526849

The stock photo of the person on the cover is silly, but if you can get past the cover, the book itself is quite good.

As a bonus, I found that after I got used to writing SQL queries, my LINQ queries got a lot better, too.

u/ohmsnap · 3 pointsr/Cyberpunk

My guess is that there is more intentionally sexual art of women, and while that fact alone wouldn't make the case for it being sexist stick, there can definitely be too much of it and it could be the result of an underlying issue.

There are 77 pictures in this photoset, and pretty much all of them reinforce that "young and attractive" type that men of nearly every age idealize. Here's the women for comparison. At the very least, there's what appears to be an imbalance. Source of data

Most of the users on the subreddit are consumers, though. I think this being a conversation amonst content creators would be a pretty good idea.

Edit: parent comment added additional research, neat.

u/MPair-E · 1 pointr/HTML

I know this isn't super helpful since you're using videos, but starting out, this book can be pretty handy.

What I like about Head First is that all of their lessons are built around real-world tasks, and they build off one another from lesson to lesson (as opposed to a bunch of random one-off projects). In the PHP book's case, the very first few chapters show you exactly how to get a database up and running, how to connect to it, and how to build pages to create a mailing list, 'unsubscribe' form, 'post to blog' form, etc.

I had zero PHP expertise when I started the book, and within a week or two I had built all that's described above, and was already figuring out ways to extend functionality, tweak, etc.

FWIW, I also think that starting out, it's worth just getting some hosting space through godaddy or any other cheap host that'll give you quick dashboard access to phpmyadmin. It'll make creating databases with mysql (which the aforementioned book also explains) a snap, and you won't have to deal with a bunch of Apache/OS-level headaches.

u/justphysics · 3 pointsr/Python

This question or a variant comes up nearly weekly.

I always try to respond, if one doesn't exist already, with a plug for the module 'Pandas'.

Pandas is a data analysis module for python with built in support for reading Excel files. Pandas is perfect for database style work where you are reading csv files, excel files, etc, and creating table like data sets.

If you have used the 'R' language the pandas DataFrame may look familiar.

Specifically look at the method read_excel: http://pandas.pydata.org/pandas-docs/dev/generated/pandas.io.excel.read_excel.html

main website: http://pandas.pydata.org/

book that I use frequently for a reference and examples: http://www.amazon.com/Python-Data-Analysis-Wrangling-IPython/dp/1449319793

u/Plussh · 1 pointr/javahelp

You should use classes to house methods based on relevancy and to generally make your program easier to understand.

I would say having 20 methods in your main class probably isnt best practice, but it really depends on what the functions are being used for.

Say if you were writing a program pertaining to cars, you would ideally have your main class launch the program and create instances of classes, and you could have a class called 'car' that handles all of the functions relating to the use of the car e.g openDoor(), doUpSeatBelt(). It wouldnt make sense to have these in your main class.

Classes are there to make your program easier for both you, and arguably more importantly other people to read, they also make it easier to re-use code and scale your programs.

There are tons of resources out there that explain this better than I can, see 'Java: the complete reference'.

https://www.amazon.co.uk/Java-Complete-Reference-Herbert-Schildt/dp/0071808558/ref=sr_1_10?ie=UTF8&qid=1518696204&sr=8-10&keywords=java

u/terrorobe · 6 pointsr/PostgreSQL

By now already dated but a good top-to-bottom introduction into Postgres in the real world is PostgreSQL 9.0 High Performance.

Most of the things Postgres does is exposed via system tables & views - for example pg_stat_activity & pg_locks.

The rest of the documentation is great as well, give it a read.

If you are new to system administration & architecture, you may want to put Designing data intensive applications on your shopping list as well to broaden your horizon.

If you have Postgres-specific questions you can ask them here or reach out to the community.

edit: fixed links

u/ElasticHeadBand · 1 pointr/short

>Because OK Cupid is definitely the best measure for dating right?

Uh, yeah. It's the only measure we have.

>I still haven't seen a source.

Since you're too lazy to type a few words into google:

http://blog.okcupid.com/index.php/your-looks-and-online-dating/

There was even a book published by the guy who founded OKC who talks about dating and dating trends like this:

http://www.amazon.com/Dataclysm-Identity--What-Online-Offline-Selves/dp/0385347391/ref=sr_1_2?ie=UTF8&qid=1462480969&sr=8-2&keywords=ok+cupid

It's pretty common knowledge at this point. Surprised you haven't heard about this until now.

u/uwjames · 5 pointsr/datascience

There is a LOT you can learn. It can be very bewildering. Here are some links that should help you get started. There are a lot of other posts in this sub with good tips so you should browse a bit.

https://www.reddit.com/r/datascience/comments/7ou6qq/career_data_science_learning_path/

https://www.dataquest.io/blog/why-sql-is-the-most-important-language-to-learn/

https://www.becomingadatascientist.com/2016/08/13/podcast-episodes-0-3/

https://www.amazon.com/Python-Data-Analysis-Wrangling-IPython/dp/1449319793

Sooner or later you'll want to start tackling some projects. That's basically where I am now in the process. I'm at the point where I know enough about Python, Statistics, and SQL to integrate some skills and hopefully do something interesting.

Best advice I can give you is

  1. Keep moving forward even if the task is daunting.

  2. Try to code for at least an hour every day
u/millsGT49 · 1 pointr/gatech

I was ISYE so I'm not sure how much you are allowed to cross over being CS but I would absolutely recommend taking a regression course. ISYE also has some data analysis electives, but to me learning and mastering regression is a must.

BBUUTT my biggest recommendation is to start playing with data yourself. I am a "Data Scientist" and graduated from the MS Analytics program at Tech and still to this day I learn the most just from playing around with data sets and trying new techniques or learning new coding tools. Don't wait to take classes to jump in, just go.

Here are some great books to get started doing "data science" in R and Python.

R: Introduction to Statistical Learning (free!!)

Python: Python for Data Analysis

u/postmodern · 27 pointsr/ruby

Sidebar

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

    Moderation

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

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

    What's this about a Contest? Sounds fun.
u/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/AnonJian · 1 pointr/marketing

> If I've got to stop looking at just the features, price, design....what direction should i be looking in?

Benefits. Okay this is remedial marketing. What you should do is click the links and read what I'm spoon feeding you. Tech loves features because you can have zero users, and the feature still exists. A benefit only exists if the customer and user says it does. A benefit can only exist if users exist and a customer is willing to pay for it.

You are far ahead of me. You know what the product is.

>How do i find out if my company actually is unique in a certain aspect that the competitor isn't?

Your sales guys will give you some biased half truths. Start there.

I've linked articles. I've written out the title and author of a book in my last comment. Hint. Hint.

== More (Reading, in case that was unclear) ==


About Face 3: The Essentials of Interaction Design

The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity

Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability

A Simple Trick to Turn Features Into Benefits (and Seduce Readers to Buy!)

u/masterprtzl · 2 pointsr/todayilearned

Relational databases are definitely a lot better and scalable in the long run than excel spread sheets. I would recommend the book "Teach yourself SQL in 10 minutes" as a great way to familiarize yourself with the basics.

http://www.amazon.com/Sams-Teach-Yourself-Minutes-Edition/dp/0672336073

u/Bored2001 · 9 pointsr/consulting

SQL is insanely easy. Like, learn enough of it in a week to do real work easy. Everyone used to recommend this book But you can probably find better sources these days on youtube or something.

For python, you can find tons of resources online.

R is like SAS. It's a programming language geared specifically for doing statistics/data analysis.

u/tidier · 2 pointsr/Python
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/notahitandrun · 2 pointsr/askgaybros

I'm around your same age and demographic as the OP and I am in the SF Bay Area. I have had countless guys do what you describe. Seems like major issues with communication and or other options. I find the same dudes often on Grindr, A4A, and other sites with differing more risque text in their profiles (conflicting what they say on OKcupid; maybe they are swamped with guys on the apps or their mailboxes).

Like you I find it quite weird they will message me, or we "match" which means they took the effort to do both and they never respond. Maybe its similar to Tinder everyone wants a self esteem boost but doesn't want to put much effort out for anything else. I've tried the direct route, the talk on the phone or have a drink route and the flirty chat route. It just seems guys on Okcupid are flakes (I even get guys from other areas contacting me). I think some of them are using it as a instantaneous chat function or geo-located grindr functionality (the app), but when you respond a day latter no response, maybe they have found someone else or messaged many others. It a free site after all (not paid like match).

Like you my response rate is low but not out of being too picky, there are some straight up freaks who contact me and have nothing in their profile, or never read mine and you can tell from the questions and text or guys across the world who want a bf. The vibe I get from Okcupid is they match with you and don't really checkout the questions, then latter they read the question find one they don't like and ignore you. For instance I have many "tops" contact me and realize its not going to work based on the questions they finally read. Try taking a look at your most important rated questions and seeing if there is something they can reject you for by looking at compatibility on their profile. The silly thing about OKcupid is it gives you a match rating based on those questions that can be answered multiple (various) ways and sometimes really don't matter or mean your compatible with a date.

I also find the average age is on the young side with guys in their 30s and over being pretty rare. I read the book Dataclysm by the guy who had the OKcupid blog. He said on average you contact 1000 people and maybe get 10 responses (those are based of of straight interactions), so imagine the more superficial and flakey gay world. He also said too many pictures is bad it gives someone a reason to reject you or too many questions answered, yet if you don't answer questions you don't get shown on wall (where everyone answers new / re-answers questions). Okcupid is the equivalent of Grindr or Craiglist, lots of response but little follow through or real dates. There was a guy in LA (UCLA) who was a mathematician who supposedly quantified and was able to game okcupid, he had to respond to thousands of profiles (he used UCLA's Super Computers as bots) to get a gf and went on countless dates a day.

http://abcnews.go.com/GMA/video/boston-mathematician-hacks-dating-site-okcupid-find-true-21635472

http://www.amazon.com/Dataclysm-When-Think-Ones-Looking/dp/0385347375

https://www.ted.com/talks/amy_webb_how_i_hacked_online_dating?language=en

u/jacob_the_snacob · 1 pointr/u_jacob_the_snacob

> Great book for anyone that is maintaining a website for a small business or organization. Not a technical book about writing code. Gives you a clear direction and guidance about how the vast majority of users surf the net, and how to make your site easy for the majority of users. Less words, more photos, clear and obvious navigation. Great examples of both real and pretend sites that are good and bad, and why they are good or bad. -- William Sauber

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

https://www.amazon.com/Dont-Make-Think-Revisited-Usability/dp/0321965515

u/Badhugs · 2 pointsr/geography

Some books I can recommend for map nerds: Strange Maps: An Atlas of Cartographic Curiosities, How to Lie With Maps, and a related book that's a bit more useful for data visualization - Visualize This: The FlowingData Guide to Design, Visualization, and Statistics.

The typographic maps from Axis Maps are pretty awesome and there's all kinds of map-related stuff on Etsy.

u/Aldairion · 66 pointsr/AskMen

That came from data pulled off OkCupid and you can read more about this and other findings in Dataclysm, which was written by OkCupid founder Christian Rudder. It's actually a very interesting read and it covers trends in behavior beyond just that which applies to dating or attractiveness.

It's worth noting that the same data showed that a vast majority of men find women most attractive between the ages of 18 - 23 or so whereas women were pretty consistently attracted to men with a few years of their own age. There are also a lot of variables that affect what metric they're using to gauge "attractiveness" so I would take that figure with a grain of salt.

A large percentage of men don't even put much effort into their baseline appearance, either because they don't want to, don't have to, or don't think to. If we're talking about looks and looks alone, then I'm not entirely surprised. Maybe it's not 80%, but if you're comparing one group of people who have been conditioned to put a little extra effort into their appearance, to another that hasn't, or has even been discouraged from doing so, then I could see why perceptions of attractiveness would skew in one direction more than the other.

Basically, don't take a line from an OkCupid blog to heart.

u/drewnibrow · 1 pointr/Design

Hey Mug2k. I think you are progressing well. Here are some resources that helped me with web and interaction heavy stuff b/c that's the direction you seem to be going. Also kudos for using Sketch!


Don't Make Me Think by Steve Krug (The bible of interaction):
http://www.amazon.com/Dont-Make-Think-Revisited-Usability/dp/0321965515


A Book Apart by Various Authors (Based on the excellent blog 'A List Apart'):
http://www.abookapart.com/


Design+Code by Meng To (One of the best when it comes to Sketch):
http://designcode.io/

u/Spawnbroker · 3 pointsr/ExperiencedDevs

If you really want to push the envelope on TC, especially as a more experienced dev, you're going to need to ace the system design interview(s).

I'm still learning this myself, but a good book you might want to check out is Designing Data-Intensive Applications. I've also heard good things about Grokking the System Design Interview.

Good luck! I'm going through the studying process as well, it's brutal.

u/no_dice_grandma · 2 pointsr/learnprogramming

For PHP and MYSQL I really liked this book:

http://www.amazon.com/PHP-MySQL-Web-Development-Edition/dp/0672329166/ref=sr_1_1?ie=UTF8&qid=1372691445&sr=8-1&keywords=php+and+mysql+web+development

It doesn't have much in the way of JS, and it is not free, but the 20 dollar kindle version is worth it in my opinion. The high reviews are accurate, and the author doesn't spend much time with stuff like "this is a variable, a variable is blahblah!!"

I haven't made it all the way through yet, as I am currently picking up Java at the same time for work, but so far the book is great.

u/Xpertbot · 5 pointsr/PHP

LOL, I am also a Junior PHP developer with a Java background ( I didn't want to work for a big corporation doing Java). I took a whole summer to read this and that was more than enough to get the basis of PHP. Its way easier than Java for sure. Good luck.

u/anevilpotatoe · 1 pointr/sysadmin

Let me clarify a little. It's helpful to find books that I can digest from the ground up on and compare with current standards or use creatively. Simple put I enjoy doing the homework on a book. What I am look to accomplish is to write SQL Queries for corporate finances and manufacturing. Working in the environment I am in currently allows me the opportunity to learn and practice it.


Here are a few I looked into:

https://www.amazon.com/SQL-Minutes-Sams-Teach-Yourself/dp/0672336073/ref=sr_1_4?ie=UTF8&qid=1519240184&sr=8-4&keywords=beginning+SQL

https://www.amazon.com/SQL-Beginners-Learning-Programming-Course/dp/1532716958/ref=sr_1_14?ie=UTF8&qid=1519240184&sr=8-14&keywords=beginning+SQL


https://www.amazon.com/SQL-Practice-Problems-learn-doing/dp/1520807635/ref=sr_1_7?ie=UTF8&qid=1519239367&sr=8-7&keywords=beginning+SQL

u/ianblu1 · 5 pointsr/datascience

I usually recommend this book for this sort of problem: https://www.amazon.com/Data-Science-Scratch-Principles-Python/dp/149190142X

In it you'll get your feet wet with respect to basic python and be exposed to how you would implement some core algorithms from scratch. Once you know that it should be relatively straightforward to move to the higher level libraries.

It's important to note that there aren't really "equivalent functions" mapping R to python. This is because R and python optimize for different things. R is a declarative analysis language- you tell it what you want it to do, not how to do it. Python is a full featured programming language also used for software development, so it supports many different paradigms (OO, functional, etc.). There are component libraries such as sklearn that implement declarative apis that will let you say things like "fit a model with these characteristics" or pandas that lets you say things like "what is the average of value in all of these columns". But in general python itself doesn't really work that way. You build things bottoms up.

u/youlleatitandlikeit · 2 pointsr/webdev

Mastering Regular Expressions is a joy to read and makes you a better user of this powerful (and misunderstood) tool.

SQL in 10 Minutes is easily the best introduction to the most common SQL you'll need to use unless you're actually planning on being a full DBA. Anyone who ever needs to step outside of an ORM should have a basic understanding of SQL and this book is it. Short, understandable, and to the point.

A lot of the books that really helped me as a developer back in the late 90s and early 00s just aren't as relevant anymore:

  • JavaScript, the Definitive Guide by David Flanagan (just use online resources)
  • The ColdFusion Web Application Construction Kit — I don't do much ColdFusion development anymore, Ben Forta's book is way out-of-date, and again most of the info you need is now online.

    Then there are books about programming. These books still remain fairly relevant even as technologies change.

  • Code Complete & Rapid Development, both by Steve McConnel
  • Head First Design Patterns
  • Don't Make Me Think (more about interface design; an essential read for people who touch the front end)
u/teeceli · 1 pointr/java

Because it sounds like you already have a ton of experience with language fundamentals, best practices and design I would recommend Java: The Complete Reference. It reads more like a reference guide and covers the entire language up through Java 8. I'm sure this would suffice to just pick up the differences and nuances between the two languages.

u/messacz · 2 pointsr/mongodb

It's normal thing in distributed systems. It's pretty logical :)

u/klepper1 · 1 pointr/learnprogramming

I would recommend the following:

https://www.w3schools.com/sql/default.asp

Good clear explanations about the basics including examples.

And in combination with the above following book:
Sams Teach Yourself Sql in 10 minutes
https://www.amazon.com/SQL-Minutes-Sams-Teach-Yourself/dp/0672336073

Good luck!

u/Wentzel142 · 6 pointsr/cscareerquestions

I'm just about to graduate with my undergrad in CS with a specialization in HCI, and have had multiple UX internships. Read these two books, they'll provide a really good baseline of knowledge about user-centric design.

The Design of Everyday Things - Don Norman

Don't Make Me Think - Steve Krug

While the second one typically focuses more on web, they're both amazing books that should be in the library of any UX/HCI specialist.

The best way to start building a portfolio is to, well, just do. Find anything (not just a program/app, even) that you don't like the design of, and start from there. Try and redesign it to make things easier to figure out. Show it to others to gauge reactions and get feedback. Iterate and improve.

There are a bajillion different programs for UI prototyping, but the first tool I'd suggest is good ol' pencil and paper. Get yourself a sketchbook and keep it in your backpack (or with you in some other capacity) at all times. When you have a design idea, drop everything, make a quick sketch, and go back to what you were doing. Ideas are fleeting and temporary, so it's best to get it on paper before you forget. Once you've got time, try and improve on those designs and think of what would work and what wouldn't. After you're happy (and have shown it to others for feedback), take it into some prototyping app like Balsamiq, Indigo Studio, or Sketch. Render it in high quality and start seeing how users would react to it in its natural setting (put it on a phone, or on a computer, etc. for testing). It's all about getting user feedback because one person on one computer may not have all the right ideas.

tl;dr: Read books. Redesign crappy things. GET A SKETCHBOOK. Feedback, feedback, feedback.

u/davidddavidson · 6 pointsr/learnprogramming

There is no "best" language for beginning learning but Python is definitely one of the "better" ones you can use in starting out. It has consistent syntax, nicely format, and low overhead needed. Ruby is has a similar style to Python and is also a good language for beginners to learn. Other people can argue that Smalltalk is a good language for beginners and then you have people all the way on the FP side of the spectrum arguing for Lisp/Scheme as a teaching language.

As for Python books I would recommend Python Programming: An Introduction to Computer Science

If you want to try Ruby I recommend The Well-Grounded Rubyist

u/shaggorama · 2 pointsr/learnpython

I also do a fair amount of NLP and anomaly detection in my work and use python for both. The reason I suggested starting with numpy is because, as I suggested, it is the basis on which everything else is built on.

I learned python before R, then used R for my scientific computing needs, then learned the scientific computing stack in python after building out my data science chops in R. I've found the numpy array datatype much less intuitive to work with than R vectors/matrices. I think it's really important to understand how numpy.ndarrays work (in particulary, memory views, fancy indexing and broadcasting) if you're going to use them with any regularity.

It doesn't take a ton of time to learn the basics, and to this day the most pernicious bugs I wrestle with in my scientific (python) code relate to mistakes in how I use numpy.ndarrays.

Maybe you don't think it's that important to learn scipy. I think it's useful to at least know what's available in that library, but whatever. But I definitely believe people should start with numpy before jumping into the rest of the stack. Even the book Python for Data Analysis (which is really about using pandas) starts with numpy.

Also, I strongly suspect you use "out of the box" numpy more often than you're giving it credit.

u/hjslong · 2 pointsr/learnprogramming

Hi, I'm also still struggling about this, turns out that software architecture is really hard!

I haven't finish this book yet, but I still found so much useful information on it that I can fully recommend. I never programmed on ruby yet the book is easily one of the best that I have ever set my eyes on. You should give a try.

https://www.amazon.com/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330

u/UnexceptionableHobby · 1 pointr/SQL

You don't need to have formal coursework or a certification.


Learn however much you need to so that you feel comfortable honestly putting it on your resume in some way. Even if this means that your resume includes something along the lines of 'light SQL experience'. If you get into an interview make sure you set the right expectation about any skills listed on your resume like this. From the mouth of a VP - "I know this job won't require (insert random skill here). I put that on there so that I have an HR friendly reason to reject any candidate."


All that being said, check out this book:


https://www.amazon.com/SQL-Minutes-Sams-Teach-Yourself/dp/0672336073


It should get you a good enough understanding to be able to talk about SQL in an interview (assuming you level set with them correctly) to demonstrate that you took the job seriously enough to start learning. It's not a lot by any means, but it can give you an opportunity to convince the person interviewing you that you can learn it if needed.

u/PM_me_goat_gifs · 6 pointsr/cscareerquestions

> scalability was a rare issue

Designing Data-Intensive Applications is a great book. Get yourself into some good personal habits, learn to cook efficiently, find a good gym near your new job, and spend some time sitting in the park reading that book.

u/Himekat · 3 pointsr/cscareerquestions

Non-fiction:

  • The Design of Everyday Things -- not about programming, but a great resource in general for viewing things from a design perspective, and it was required reading in my CS curriculum.
  • Don't Make Me Think -- another design-oriented book about web usability. It's quite a quick read since it's mostly pictures.

    Fiction:

  • Sourdough -- it's a fun whimsical story about Silicon Valley, programming, and baking bread. Very quick, light read.
u/furyfairy · 1 pointr/GetSmarter

Happy to help.

BTW this book could also be useful to you , very good book:

http://www.amazon.com/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330

u/choleropteryx · 2 pointsr/CasualMath

Books on Fractal Geometry tend to have pretty pictures:

Indra's Pearls: The Vision of Felix Klein by David Mumford et al.

Beauty of Fractals by Heinz-Otto Peitgen et al

Fractal Geometry of Nature by Benoit Mandelbrot

For what it's worth New Kind of Science by Stepeh Wolfram has tons of pretty pictures, even if the content is dubious.



you might also want to checkout the Non-Euclidean Geometry for babies and other similar titles.

u/cfors · 22 pointsr/datascience

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

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

u/bhrgunatha · 7 pointsr/compsci

This isn't criticism or a judgment, but that sounds like an odd request. If you've really absorbed what's in CLRS, I would imagine you could just research those data structures yourself and, for example, look at some open source implementations.

Or research what's in other Data Structures and Algorithms books and read up on them.

Having said that - there is an MIT course on advanced data structures.

I also enjoyed Chris Okasaki's Purely Functional Data Structures

There are 2 Coursera courses in particular - Princeton University's Algorithms Part I and Algorithms Part II - they've provided a web site for their book where lots of algorithms and data structures are implemented using Java with the libraries and source code freely available.

u/tmartlolz · 1 pointr/web_design

Are they really any courses that are 'reputable' in the way that a potential employer cares about? I don't think so. Read some books, practice building and structuring UI without bootstrap, build a portfolio you're proud of. Don't Make Me Think is pretty good.

u/JustJeezy · 1 pointr/datascience

SQL in 10 Minutes

This was the book used in an introductory course I took. It did a pretty good job of explaining everything and was pretty easy to follow.

u/LinguoIsDead · 3 pointsr/web_design

Thanks for the reply! I can safely say I would like to focus on web/digital. I've started collecting/bookmarking resources to the principles you mentioned but is there any particular path you would recommend? I don't mind throwing down some money for a learning resource (such as Lynda) and some books. My current list of books I have in my cart:

u/Swisst · 4 pointsr/design_critiques

Without going into a lot of details, I would really suggest taking some time to study design fundamentals. A lot of your work looks like it stems from quick experiments with filters and various online tutorials. A better understanding of type, space, hierarchy, etc. will take you far.

Books like Thinking with Type, [Don't Make Me Think] (http://amzn.com/0321965515), and Making and Breaking the Grid would be a great place to start. Buy those—or get them from a library—and read them cover to cover.

u/_a9o_ · 4 pointsr/cscareerquestions

If you're doing backend/server side work, there's no better book than:
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems https://www.amazon.com/dp/1449373321/ref=cm_sw_r_cp_apa_h5nPBbZ9ZAWG9

In terms of learning what it takes to level up, I highly recommend the following books:
The Senior Software Engineer: 11 Practices of an Effective Technical Leader https://www.amazon.com/dp/0990702804/ref=cm_sw_r_cp_apa_o6nPBbVY8XDM9

The Effective Engineer: How to Leverage Your Efforts In Software Engineering to Make a Disproportionate and Meaningful Impact https://www.amazon.com/dp/0996128107/ref=cm_sw_r_cp_apa_n7nPBbB1ZDP2H

u/xiongchiamiov · 3 pointsr/webdev

I'm almost finished with the book, and boy, it's great.

While we're making book suggestions, I also highly highly recommend picking up a copy of Steve Krug's Don't Make Me Think. It's important to remember, when delving into design, that it's not just about making things pretty - you need to make them functional, too.

u/olifante · 10 pointsr/Python

"Python for Data Analysis" is pretty good. It's written by Wes McKinney, the creator of Pandas, so its focus is using Pandas for data analysis, but it does include sections on basic and advanced NumPy features: http://www.amazon.com/Python-Data-Analysis-Wrangling-IPython/dp/1449319793

Alternatively, the prolific Ivan Idris has written four books covering different aspects of NumPy, all published by Packt Publishing. I haven't read any of them, but the Amazon reviews seem OK:

u/junglizer · 1 pointr/IWantToLearn

That looks like a pretty solid book. I have used PHP and MySQL: The Developers Guide in the past and it has served me well. I used it in college and bought myself a copy a while back. However, I will caution that I know several versions of PHP or SQL, or specifically how it connects has changed since the release of the book. I have found that the PHP information is otherwise accurate and very helpful.

u/veloace · 1 pointr/webdev

If you really want to learn, I think a good start for you would be to read this book it was a good start for me and a tremendous help. It should also cover the basics of everything you need to know. Also this video helped me a lot as well.

u/attr_reader · 3 pointsr/ruby

Exercism.io is a great resource where you're able to use your problem solving skills while you level up your Ruby.

In addition, Basic Ruby. This is extremely basic, however, BR does a great job with the fundamentals of Ruby.

+1 on Ruby Monk. -1 on CodeAcademy.

I'd recommend Sandi Metz's Practical Object-Oriented Programming.

u/bluelite · 1 pointr/learnprogramming

The book Don't Make Me Think is a great, lightweight introduction to UI design and testing. There are no magic formulas; that is, it's impossible to state that "if your UI does X, Y, and Z, it'll be great!." But there are guidelines that you ought to follow--or consciously ignore.

Your UI is good if the majority of users can navigate it without asking for help of giving up. Start by testing your UI designs on a few friends. Give them some tasks to do. If they can accomplish the tasks, you're on the right track. If not, re-design and test again.

u/its_joao · 1 pointr/learnpython

You see, python is a very simple language that doesn't require you to annotate everything line by line. You might be better off brushing up your general python knowledge befire jumping into projects. This will save you time having to read or looking for comments to understand the code. Also, consider looking at the requirements.txt file for the imports of a particular repo. It'll tell you what packages are being used and you can then Google their documentation.

I'd definitely recommend you to read a book about python first. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython https://www.amazon.co.uk/dp/1449319793/ref=cm_sw_r_cp_apa_i_U38gDb4RE5933

u/rootyb · 1 pointr/web_design

You know... most of my design work is strictly web-based. Links and stuff. A great book for that, though, is called Don't Make Me Think by Steve Krug.

It's a pretty solid book that talks a lot about using things like hierarchy and position to visually describe relationships, rather than expecting the user to be able to think about it and figure it out (which users don't like to do, generally). It's more focused on web-specific stuff than general UI, but I think the lessons are broad enough that you could find them useful.

u/foodporncess · 1 pointr/IAmA

This is kind of the "bible" for UX: Don't Make Me Think by Steve Krug

This is another good one, particularly in the software design field: Lean UX: Applying Lean Principles to Improve User Experience

And then these websites are great:
Boxes and Arrows
User Interface Engineering
Nielsen Norman Group
UX Mag
UX Matters

u/jeffderek · 2 pointsr/crestron

Agree completely on Design of Everyday Things and 100 Things Every Designer Needs. They're both top tier books.

I also enjoy Don't Make Me Think, which is a web design book and has a lot of stuff that doesn't apply to touchpanels, but it espouses a method of looking at your design that I have found very useful for touchpanel design as well.

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/Chris_Misterek · 3 pointsr/userexperience

Have you looked through

u/atium_ · 9 pointsr/haskell

Not what you are asking for really, but you'll get better with experience.


Take a few imperative algorithms and convert them over.
Solve some problems on HackerRank. Do it your way, afterwards compare your solution with some of the other Haskell solutions.


Some functional algorithms and data structures are done very differently. Chris Okasaki has a book Purely Functional Data Structures that covers some (though its for ML)


There are papers/articles on topics such as Functional Binomial Queues and Hinze has got a paper on Priority Search Queues that also covers an implementation of Dijkstra and Prims.


The Haskell Wiki has got a page listing functional pearls. Maybe also take a look at how dynamic programming and such paradigms are done functionally.

For most algorithms you can write it in a imperative manner and use mutation and looping constructs, if you have to. But you aren't going to find some guide to convert any algorithm into idiomatic Haskell. Some functional implementations require you to think differently.

u/yeahbutbut · 3 pointsr/programming
> If you can spare the ram and computing time, sure. This also exists in OOP under the name of Memento pattern but is hardly ever applied because of how slow it can be with big data sets.

The advantage with immutable data structures is that your "modifications" are stored as a delta from the original so the memory requirements are fairly low. [0][1] You probably would have plenty of ram to spare.

>`How do you write the following in FP, with a single stack

(def graph (atom #{ #_"vertices go here"}))
(def stack (atom (list)))

(let [some-value 42.0]
(def my-command {:do (fn [graph] (map #(merge %1 {:length (+ (:length %1) some-value)} graph)
undo (fn [graph] (map #(merge %1 {:length (- (:length %1) some-value)} graph)})

(defn apply-command [cmd]
;; replace the graph with a version mutated by do
(swap! graph (:do cmd))
;; put the undo function on the stack
(swap! stack conj (partial swap! graph (:undo cmd))))

(defn undo-last []
(swap! stack
(fn [stack]
;; run the undo fn
((first stack))
;; return the stack sans the top element
(rest stack))))

(apply-command my-command)
(clojure.pprint/pprint @graph)
(undo-last)
(clojure.pprint/pprint @graph)

But you probably wouldn't have the graph as a global atom, someValue would be injected into the command, etc, etc.

[0] https://www.amazon.com/Purely-Functional-Structures-Chris-Okasaki/dp/0521663504/ref=sr_1_1?ie=UTF8&qid=1493603954&sr=8-1&keywords=purely+functional+data+structures

[1] http://blog.higher-order.net/2009/09/08/understanding-clojures-persistenthashmap-deftwice.html

Edit: formatting, do was + undo was - in the original, add usage at the end
u/Mason-B · 2 pointsr/programming

An immutable list is implemented as described by the other responses, but equivalent immutable data structures exist for all mutable data structures. Immutable arrays with O(1) lookup and O(1) 'assignment', which of course enables O(1) dictionaries. And all the others.

This talk by Rich Hikley, creator of Clojure, has a good example of how it works (About 23 minutes in, but the rest of the talk is good). Also see Purely Functional Structures for an indepth look at it, and many more.