Best job hunting & careers books according to redditors

We found 1,878 Reddit comments discussing the best job hunting & careers books. We ranked the 557 resulting products by number of redditors who mentioned them. Here are the top 20.

Next page

Subcategories:

Job hunting & career guides
Job hunting books
Job interviewing books
Resumes books
Volunteer work books
Vocational guidance books
Job markets & advice books

Top Reddit comments about Job Hunting & Careers:

u/samort7 · 257 pointsr/learnprogramming

Here's my list of the classics:

General Computing

u/Hi_Bubba · 102 pointsr/cscareerquestions

Everyone sucks at something at one point, but with practice you'll definitely be able to get better! I highly recommend writing over typing out the solution when you practice. Also, 90% should be dedicated to planning out path to the solution and 10% for writing/typing the solution out. Sooner or later, things should start clicking and making sense. Here's a list of resources that helped me get all the way to the Google on-site interview (Didn't get an offer but it was an amazing learning experience)

Data Structure And Algorithm 1: http://www.youtube.com/playlist?list=PLLH73N9cB21W1TZ6zz1dLkyIm50HylGyg

Interviewcake: https://www.interviewcake.com/

Khan Academy: https://www.khanacademy.org/computing/computer-science/algorithms

Leetcode: https://leetcode.com/

Cracking the Coding Interview: http://www.amazon.com/gp/aw/d/0984782850/ref=pd_aw_sbs_14_1?ie=UTF8&dpID=51F6Lwyq5JL&dpSrc=sims&preST=_AC_UL390_SR390%2C390_&refRID=1PE4XEBQDDHEF4T1ZA9K

Algorithm Design Manual: http://www8.cs.umu.se/kurser/TDBAfl/VT06/algorithms/BOOK/BOOK/BOOK.HTM

Make sure to practice everyday and have a strong understanding of the concepts. Network, contribute to open source projects, and keep on learning!

u/VikingCoder · 72 pointsr/technology

Employers like degrees, but employers also like people who know how to get things done. At the very least, teaching yourself is a good start for whatever else you're thinking of doing.

I've thought about it a lot: if I were trying to learn to program, today, from scratch, what tools would I want? Well, here are a few of my favorite things...

Free VS 2010 Professional for @edu accounts:

https://www.dreamspark.com/

Free Eclipse IDE for Java EE Developers:

http://www.eclipse.org/downloads/

Free team tools worth understanding:

http://www.perforce.com/ (version control)

http://subversion.apache.org/ (version control - pretty much the same thing as perforce, but not as good)

http://git-scm.com/ (version control - a VERY different way of doing things, but powerful and gaining popularity)

http://www.rallydev.com/ (task management - kind of a pain, but good to play with)

Tutorials:

http://www.khanacademy.org/science/computer-science?k (probably a very good place to start)

http://www.khanacademy.org/exercisedashboard (math - the value of this cannot be overstated)

Online course-ware:

http://mitpress.mit.edu/sicp/

http://ocw.mit.edu/courses/#electrical-engineering-and-computer-science

http://www.stanford.edu/online/

http://edudemic.com/2012/04/the-25-best-places-to-take-free-online-computer-science-classes/

Problem solving challenges:

http://projecteuler.net/ (we should go through these together)

Community:

http://stackoverflow.com/ (Q&A forum)

http://www.reddit.com/r/programming (some good links, okay place to ask questions)

Books:

http://www.amazon.com/Programming-Interviews-Exposed-Secrets-Programmer/dp/047012167X (once you're ready for a job, this is good to work your way through)

Possibly a good discussion about finding a software job, later in life:

http://news.ycombinator.com/item?id=4350827

And then...

Depending on the kind of development you're interested in, there are a TON of other valuable resources, tutorials, tools, etc:

Free Cloud Services - depending on what you're doing, these might be SUPER valuable... Might not want to make an account until you're ready, because the clock starts ticking:

http://aws.amazon.com/free/

https://www.windowsazure.com/en-us/pricing/free-trial/

Free cloud development tools:

https://c9.io/

u/ice109 · 67 pointsr/math

>I teach myself about 30 minutes to 1 hour of coding per day

you need to spend way more time than this. you're done with your dissertation - you should be spending like 8 hours a day on it.

1 year of full-time study is absolutely plenty of time to be proficient enough to land a job as a quant at a hedgefund.

i never went out for those jobs but the easiest way to figure out what you need to know in order to land a job is to reach out to someone that works at a hedgefund and just ask them. here's a list of the top quantitative hedge funds:

http://www.streetofwalls.com/finance-training-courses/quantitative-hedge-fund-training/quant-firms/

look up people that work there (or have worked there) on linkedin and message them. be polite and brief and succinct. eventually someone will talk to you and give you a good idea of what you need to know.

if you want to build models, off of the top of my head (from what i remember) you'll need to know a lot of undergrad data structure stuff (basically all of CLRS), SDEs (oksendal), optimization (boyd, bertsekas), basic stats (casella). all of this is pretty straightforward - read the books and the do the problems. the harder part is convincing someone you can come up with a strategy that's novel.

if you want to implement models, you need the data structures and optimization but you also need to pretty god damn good at very tight C++ (maybe ocaml if you go to jane street).

in general wilmott is a better place to ask https://forum.wilmott.com/

also wouldn't hurt to read this https://www.amazon.com/Heard-Street-Quantitative-Questions-Interviews/dp/0994103867
though it's mostly for analysts.

u/CaptainStack · 60 pointsr/cscareerquestions

So there's not a lot for us to go on here, but one thing I'll say is that good software development jobs are not easy, even for those completely qualified for them. If he's in the middle-high range salary-wise, then the challenge and expectations are probably all there. Software engineers are not cheap, so while they're treated very well to attract and retain talent, they're also seen as a big investment that had better pay off.

I was laid off from my first full time job and while my coworkers spoke very highly of my skills and the care I took with my work and went out of their way to emphasize how bright my future was in the industry both in person and in my peer reviews, my managers made things very clear: For the level of work they needed me to do, I simply was either not skilled enough or experienced enough to make the cut. It wasn't personal, or a statement about how smart I was, it was a cold and completely practical business decision.

What did I take away from that? Well after I stopped feeling bad for myself I realized that there wasn't anything wrong with me, that I was perfectly capable of cutting it in this industry, that many engineers less smart than me got along just fine, and that I simply needed to up my game and get a new job. It wasn't about getting smarter, it was about getting my shit together and working out of Cracking the Coding Interview daily, learning the hot frameworks that everyone needs engineers for, building a real portfolio and GitHub profile, and being ready to work that hard even after I got a new job. And I got a new job where I was paid over twice as much and so far I love it.

u/parlezmoose · 59 pointsr/cscareerquestions

Nah, don't be silly. There's the real world knowledge that you use on the job and then there's the stuff they ask in interviews, which mostly consists of things you learned in college and forgot. Most programmers, regardless of experience, aren't going to do well on an Amazon technical interview unless they study before hand.

u/Paul_Swanson · 54 pointsr/sysadmin

Don't burn out. The world fell down around you, but you aren't responsible to bear it on your shoulders.

If you think you have a serious shot at the directorship, read The First 90 Days. Has some great information about promotions, gathering information on the situation, and building relationships up, down, and laterally.

u/dinmordk1 · 47 pointsr/learnprogramming

For Theory/Lectures

  1. https://www.youtube.com/channel/UClEEsT7DkdVO_fkrBw0OTrA
  2. https://www.geeksforgeeks.org/data-structures/
  3. https://www.geeksforgeeks.org/fundamentals-of-algorithms/
  4. https://www.coursera.org/learn/algorithms-part1
  5. https://www.coursera.org/learn/algorithms-part2
  6. https://www.coursera.org/specializations/algorithms
  7. https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/lecture-videos/
  8. https://www.codechef.com/certification/data-structures-and-algorithms/prepare#foundation
  9. https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836/ref=sr_1_3?crid=Y51H99ZLXW8S&keywords=elements+of+programming+interviews&qid=1558622746&s=gateway&sprefix=elements+of+pro%2Caps%2C349&sr=8-3 [C++/Python/Java]
  10. https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=sr_1_1?crid=10BA7LH4GNFTS&keywords=cracking+the+coding+interview&qid=1558622733&s=gateway&sprefix=cracking+the+co%2Caps%2C368&sr=8-1

    For Practice

  11. https://www.hackerearth.com/practice/
  12. https://www.hackerrank.com/dashboard
  13. https://leetcode.com/problemset/all/
  14. https://www.interviewbit.com/practice/
  15. https://www.spoj.com/problems/classical/sort=6
  16. https://www.codechef.com/problems/school/?sort_by=SuccessfulSubmission&sorting_order=desc
  17. https://codeforces.com/problemset?order=BY_SOLVED_DESC
  18. https://practice.geeksforgeeks.org/
  19. https://a2oj.com/ps
  20. https://projecteuler.net/archives
  21. https://hack.codingblocks.com/
  22. https://www.reddit.com/r/dailyprogrammer/
u/a_cs_grad · 47 pointsr/cscareerquestions

/rant Something that concerns me about this sub is how up and coming Software Engineers ask for handouts of information that they can easily acquire by googling and researching. Now I'm going to reward this behavior by pointing you in the right direction.
/endRant

First off: The FAQ https://www.reddit.com/r/cscareerquestions/wiki/index

1.) Resume: https://www.careercup.com/resume

Using Latex: https://www.overleaf.com/gallery/tagged/cv (A lot of people love the Deedy Resume template - note that if you choose to use Latex then your output will be pdf which may not be processed well by automated resume processors)

Using Word: https://templates.office.com/en-us/Resumes-and-Cover-Letters

Notes: White space is valuable. Target your resume to the position(s) (but don't lie). Write it, then proofread it, then edit it, and repeat (grammar/poor wording looks terrible). The easiest way to maintain a good resume is to do just that - periodically (every ~6mo) open it up and add new experience (ignore the proofreading if you want.. just write anything new down).


2.) https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X and https://leetcode.com/

Notes: East Coast/Tier 2 companies typically don't ask as many (or as difficult) programming questions so focus on behavioral and domain knowledge. For the technical questions practice on an actual whiteboard with a partner while explaining your thought process out loud. Communication skills are probably more important than technical skills but this sub doesn't bring that up as much.


3.) See 2.


Final Notes: Maintain & update your LinkedIn. Prepare for your job search to be a grind (mentally). Do lots of research. Try and get referrals to increase the likelihood that you get an interview. There's no magic advice that will enable you to land a BigN job without hard work (though some will achieve it more easily than others - many people interview at Google 2-3+ times before they land a job there). Reading "Clean Code", "The Pragmatic Programmer", "How to Win Friends and Influence People", and at least owning a copy of "Code Complete" are often suggested here as ways to improve your abilities as an SWE.

u/benjaben · 38 pointsr/cscareerquestions

A couple things:

  1. Pick up a copy of [Cracking the Coding Interview] (https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=dp_ob_title_bk)

  2. Register for a trial Pluralsight account and go through the Javascript/JS libraries tutorials

  3. Have a decent portfolio. Make a blog site to show you understand dynamic input. Have a site where you input some values in a form and use those values to calculate something (take home pay calculator, mortgage calculator, student loan repayment, ect).

  4. You're competing with not only other college grads, but people who've been interviewing for awhile too. Make sure you practice your interviews with a friend. Don't skimp on the HR questions. I've stumbled on the "Tell me about yourself question" more times than I'm proud of.

  5. Have some stuff on GitHub that you can show off.
u/YummyDevilsAvocado · 33 pointsr/FinancialCareers

This, and similar questions get asked a lot, so I've started a list of resources. I'd appreciate if people can link me other good stuff so I can add to it.

Note that quantitative finance is a broad term, so different people will be doing very different things, and have different opinions about them.

Quantitative Trading Summaries:

A summary of quantative trading

Max Dama - On Automated Trading

Cliff Asness - A Brief and Biased Survey of Quantitative Investing

Mark Joshi - On Becoming a quant

Becoming a quant for a programmer

Interview Prep:

Brainteaser section of On Automated Trading

Heard On The Street

Jane Street - Probability and Markets

Sites:

Wilmott

Nuclear Phynance

Blogs:

Math Investor

Investment Idiocy - Systematic Trading

Meanderful - HFT stuff

Jane Street Blog

Jane Street Youtube

Papers From funds:

AQR


I'm also thinking about a "books your interviewer has probably read" section.

A lot of people are passionate and defensive about this stuff. So someone, somewhere, will have bad things to say about each of these. But overall I believe there is a lot of insight to be gained from reading through most of it.

u/Glourflump · 32 pointsr/learnpython

Some things to think of:

  1. "Python Programmer" isn't a job title, but "Web Developer" is. Web development would typically require some knowledge of Django, JavaScript and SQL in addition to Python.
  2. You will need to relocate without loss to your personal productivity.
  3. You will need current employment with recent letters of recommendation.
  4. If you are not already employed in a programming position, you can prove your abilities through an active GitHub or project portfolio.
  5. Read about coding interviews.
  6. Any social event is a place to make connections. Some of the best jobs will never be listed.

    You're a professional the day you dress up and start trying.
u/sharjeelsayed · 30 pointsr/cscareerquestions

Awesome Interviews
https://github.com/MaximAbramchuck/awesome-interview-questions

Coding Interview University
https://github.com/jwasham/coding-interview-university

Cracking the Coding Interview: 189 Programming Questions and Solutions
https://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850

Company Interview Corner - GeeksforGeeks
http://www.geeksforgeeks.org/company-interview-corner

Technical Interview Questions | CareerCup
https://www.careercup.com/categories

Search Interview Questions
https://www.glassdoor.com/Interview/index.htm

Linux System Administrator/DevOps Interview Questions
https://github.com/chassing/linux-sysadmin-interview-questions

The System Design Primer
https://github.com/donnemartin/system-design-primer

Devops Interview Questions
https://github.com/Leo-G/DevopsWiki/wiki/Devops-Interview-Questions

More interview prep resources including online courses at http://Learn.SharjeelSayed.com

*Edited for more resources

u/Finbel · 29 pointsr/learnprogramming

If you're working on your math and might pursue a CS degree I'd recommend Cracking the Coding Interview. I actually haven't read it myself but it's a highly recommended book often mentioned on subreddits like /r/cscareerquestions

EDIT: Perhaps pair it up with books on algorithms and data structures so you get comfortable in working with, lists, arrays, trees, graphs etc :)

EDIT: (currently 0) Why would someone down vote this? I just don't understand why?

EDIT: Someone mentioned that it could perhaps be because I hadn't read it myself so I thought I'd add a heartfelt recommendation by /u/amputect that I just read in the authors AMA:

> Gayle, I don't have a question, but I wanted to say that your book helped me get two programming jobs. I used to push grocery carts in the arizona summer, now I work for Google. I also, like, went to college and learned and stuff, but your book was a huge help in prepping for interviews. Thanks to you, I felt more confident and more prepared, and I was able to interview with several major tech companies without fear vomiting a single time which for me was a pretty big deal.
Seriously, thank you, thank you, thank you. Your book is great, I recommend it to everyone. You are a fantastic writer and a brilliant human being. Thank you!

u/jbrs_ · 28 pointsr/vegan

Here is my donation

===

I'd like to also just mention GiveWell, which does the same thing for Human Charities. I learned about it through Will MacAskill's Doing Good Better (which makes an argument for why it's effective to buy less meat!)

===

Also, you can support MFA and probably other effective animal charities through Amazon Smile: http://imgur.com/a/CuULJ

u/ahistoricity · 27 pointsr/technology

CERN exerts a brain drain effect: many of the most promising experimental physicists are relocating to Europe because that's where the action is in their field. From the perspective of an American, it would be better for America to gain physicists from Europe rather than losing them. There are arguments that benefiting from scientific brain drain is excellent for the US economy.

The data from the LHC and the theories it's testing are arcane for now, but there's a chance it could be massively important down the road. The study of atomic fission used to be merely scribbles. Is there a guarantee that quantum field theory will be as pivotal as atomic fission? No. But there's a slight chance.

It's kind of like early exploration of Antarctica: was it useful at the time? No. Expensive? Yes. Worth it? Yes and No are both valid (depending on what you value), but I'd say yes.

edit: I meant to link this book instead

u/riatonmiguelito · 23 pointsr/mexico

Yo estoy viviendo en NY desde diciembre del año pasado y estos son los consejos que te puedo dar.

  1. Aprende inglés y trata de practicarlo lo más que puedas. Si ya lo sabes trata de mejorar tu comprensión verbal, qué tan bien lo puedes escribir etc. Yo sé de muchas empresas inclusive en México que dejan ir a buenos ingenieros porque no manejan inglés.
  2. Compra o descarga libros para entrevistas y léelos completos, haz los ejercicios del libro, etc. Muchas preguntas de programación terminan siendo las mismas o variantes de las que encuentras en estos libros. estoy seguro de que si traes buen inglés y puedes contestar el material de los libros, puedes conseguir trabajo en EUA. Algunos clásicos son:

    http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

    http://www.amazon.com/Programming-Interviews-Exposed-Secrets-Landing/dp/1118261364/ref=sr_1_1?s=books&ie=UTF8&qid=1458414826&sr=1-1&keywords=programming+interviews+exposed

    Básicamente, refuerza tu conocimiento de algoritmos y estructuras de datos. El decir "esto sí lo hice o lo vi en la escuela pero ya no me acuerdo" no es una excusa válida en ninguna entrevista.

  3. Si ya te sientes a gusto con tu nivel de programación, saca una cuenta en HackerRank y aviéntate ejercicios de ahí o entra a algunos concursos. Si traes un buen nivel entonces vas a poder hacerlos, si no pues entonces necesitas seguir estudiando. También te sirve poder estar familiarizado con esta página ya que sé por experiencia propia que Bloomberg y Amazon la usan para reclutar.

  4. No le tires a todo, trata de enfocarte en una o dos tecnologías. Sí puedes decir que en tu carrera haz usado C, C++, Python, Java, JavaScript, Ruby, Perl y C# y que puedes aprender fácilmente, pero trata de definir qué tipo de trabajo quieres y usando qué tecnología. Esto con el fin de que puedas estudiar bien las características del lenguaje, sus standard libraries, sus frameworks más comunes, etc. En mi experiencia si le tiras a todo no vas a profundizar en nada. Si estás aprendiendo una nueva tecnología checa bien el mercado laboral y la demanda que hay de la misma. Creo que ahorita Javascript está muy de moda.

  5. Actualiza tu LinkedIn y cambia tu ciudad de residencia a la ciudad en donde te gustaría trabajar. No todos en EUA están conscientes de las visas TN y lo fácil que es traerse a Mexicanos a EUA, por lo tanto no buscan a gente en México. Sin embargo si cambias tu ciudad vas a empezar a salirles en sus búsqueda y te van a contactar. Siempre puedes luego decirles que lo cambiaste por ese motivo. También investiga un poco acerca de la visa TN para que puedas convencerlos de lo fácil que sería el proceso de llevarte a EUA, como te digo, muchas empresas no saben de la visa TN.

  6. Manda tu CV a alguna empresa que se encargue de llevar a ingenieros a EUA. También agrega a reclutadores por LinkedIn y mándales mensajes. Si necesitas hacerlo, paga por LinkedIn Premium. Aquí te dejo la página de algunas reclutadoras.

    http://www.bairesdev.com/

    http://www.opensystemstech.com/

  7. Si tienes tiempo haz algunos proyectos por tu cuenta y ponlos en github. En algunos lugares (especialmente empresas pequeñas) les gusta ver como codificas.

    Mucha suerte, cualquier cosa mándame un mensaje!
u/MAGAManARFARF · 23 pointsr/The_Donald

If you all havent read his [book] (https://www.amazon.com/How-Fail-Almost-Everything-Still/dp/1491518855) I highly recommend it. Nearly finished with it and its very inspiring and eye-opening

u/sonnytron · 22 pointsr/cscareerquestions

Don't let the lucrative offers some people get, deter you from turning down a very solid offer to get some good experience even if it's a little below your compensation expectations. Being unemployed for 3+ months and never getting that 110K + bonus + relocation @ [Insert Big N Name] is a shitty situation compared to some 65-70k at a less expensive city with a smaller company that has some new tech they're trying to scale.
In a year, you'll be surprised how much you can save and if you play your cards right, network, do a great job, you'll be worth a decent amount of money after a year.
Have friends whiteboard you for practice. Get used to writing "nearly" build ready/compile ready code using built in Java language data structures and functions. Especially get used to the Collections library, iterating over two collections in a single pass while checking for duplicates or comparators on each entry.
Buy this book and this book and sign up for LeetCode on a free account.
Honestly, try to enjoy your spare time. Do something logical but fun like playing strategy games or solving puzzles. Go to meet & greets, club meetings, volunteer at a dog shelter. Don't try to "win" this game because out of all the people that "win", some end up having severe issues with stress, time management, "loving" the job/life and life after college is nowhere near as sunshine and rainbows as during.
I wish I could "skip" a lecture and work from home, watch Netflix or go with some friends to go eat food in a town nearby or catch a convention or watch some concert on campus. All the college fun stuff? It's gone. Now it's just work... Well, work and money but still... Not as much fun college stuff. Some fun college stuff, but not as much.

u/khnd · 21 pointsr/cscareerquestions

so if you're aiming for summer 2015 then two things i suggest are:

  1. pay attention during data structures + algo courses
  2. spend fall semester with the cracking the code book

    when january 2015 rolls around, you'll be battle ready for all the interviews. but ya - thats what worked for me.
u/RunninADorito · 20 pointsr/cscareerquestions

It's really simple. If you're have problems passing phone screens and in-house interviews, there's a gap somewhere. You need to figure out what that is and fix it.


Do you have personality issues (be honest). I have no idea what 2000+ friends on fb means. Who the hell actually knows 2000 people...wtf? Do you have close friends? Can you have causal conversations with people? Are you aspy? If you're sure you're cool here, move on. If not, sign up for Toastmasters and dive in.


More likely, you have some gap in CS fundamentals. There's stuff you don't know and people aren't hiring you because of it. Write the code to solve the following two problems (no cheating or I can't help).

  1. Given 2 sorted lists of integers, write a function to merge them together and return the resulting list.

  2. Reverse the nodes of a linked list in place.


    There's something you're doing or don't know that's causing people not to hire you. You need to pinpoint what that is and fix it. It's probably nothing that a weekend or two of cramming can't fix. Check out glassdoor.com and get to the point where you can solve most any of the questions. When you're practicing, write the code for each one. Get this book: http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X


    You're completely wasting your time "playing around with frameworks" because no one's going to hire you for that. You need to work on the stuff you're scared of that you're putting off learning about. Can you code a red/black tree from scratch? If not, you should learn to do that before even thinking about doing a "personal project."
u/HalLogan · 20 pointsr/ITCareerQuestions

Congrats! If you feel like you're up for a challenge then I'd say go for it as long as you feel like you've got a good support structure in and out of the company. To answer your question, my transition was somewhat mentored by my old boss followed by an abrupt changeout of new-boss-for-newer boss. If I could do anything differently from that time period, it would've been to force the issue of getting performance metrics on my own terms rather than waiting for someone to tell me what my team's metrics would be.

In case any of these might help I'll offer a couple quick considerations/suggestions:

  1. Find out who you're accountable to (which keep in mind, that probably won't be just your boss) and what they define as success. When that definition is vague or unrealistic, help them come to a definition that's specific and attainable. But either way, reach out to them. Meet with them on a regular basis. If they say they don't want to do a standing meeting then set a weekly or monthly or quarterly reminder (depending on how things are going) to reach out to them.
  2. Depending on the structure and the size of the team, it's important to identify if you're managing individual contributors or if you're managing managers. The two are very different animals; I'd normally expect a director position to be mostly the latter but companies vary.
  3. I can't recommend reading The First 90 Days enough. It was written for people like us.
  4. Chances are, you have in your head a handful of experiences that have struck you as good technology leadership and a handful that are not-so-good. Succinctly capture your takeaways from those; those help to define your core principles and it's important not to lose sight of them.
  5. Don't be bashful about asking what your predecessor did well and what (s)he could have done better. Ask that of your superiors, your peers, and the people on your team.
  6. Very early on, find out not only what procedures are documented (and how up-to-date they are) but especially find out what kind of emergency response procedures exist. If they don't, get a basic one together asap and do a test activation of it. An emergency will definitely happen during your first year; you have no control over that. What you can control is the degree to which you and your team are prepared to respond to it. Few statements are more reassuring coming from someone in your position than "Okay guys, bad thing X happened and it's going to be a rough day at the office. But we have a plan for responding to it and it's time for us to execute that plan. Let's go to work."
  7. Most importantly: chances are you're a dependable engineer and the people you've worked for have come to trust you as their go-to guy or gal. You need one of those. Several if possible, for different facets of the team's operations.

    Best of luck!
u/HomeNucleonics · 19 pointsr/learnprogramming

Cracking the Coding Interview is a bestseller on Amazon and is extremely helpful. I've read through it on flights out to interviews, and it puts me in a great frame of mind.

If anything, I get more out of the guide for how to approach interview questions more so than the meat of how certain problems or algorithms work themselves.

Make sure you take the science of approaching your answering process for the questions just as seriously and systematically as the mathematics/algorithms involved. Cracking the Coding Interview does a good job of summarizing the approach you should take, and gives a series of questions to practice answering in the manner provided (all sorts of common algorithms and data structures used in interviews are contained in the book, giving you great practice at applying these types of things). You should buy that book right now, and buy a whiteboard and an erasable marker to practice answering some of the questions on. Well well well worth it.

Most of all, have fun! In a certain way, the more fun you have, the better your impression will be on your interviewers.

Also, I wore a suit once to an interview, and I felt like a moron.

Edit: some quick re-wording.

u/DeltaIndiaCharlieKil · 18 pointsr/MakeupAddiction

> Why even have your own charity if you're going to funnel to other charities. By time it gets to people what is left?

To answer this, it is quite common for one non profit to be focused on the raising of money for a related cause. They both raise and then research the best way for that money to be distributed by doing the necessary analysis of the programs in that areas, and then go on to fund them. By donating to their fund you are trusting that they will do the best job in this endeavour.

It makes sense because companies like MAC are not equipped to actually handle AIDS related issues. They are very well equipped to handle fundraising for AIDS related issues.

What is funny is your complaint against MAC of "why even have your own charity if you're going to funnel to other charities. By time it gets to people what is left?" is exactly what the Clinton Foundation doesn't do. They are both well equipped to raise money and create and implement successful programs. They still give grants to other programs as well, so they are a unique foundation in the philanthropic world.


I would recommend to you the book "Doing Good Better" by William MacAskill. He does a fantastic explanation of how normal people can analyze programs and charities and how we can utilize small amounts of donated money to do the most amount of good. Easy read, very compelling and challenges the way most people blindly donate.

u/cynicaloctopus · 18 pointsr/webdev

I strongly recommend reading Gayle Laakmann Mcdowell's Cracking the Code Interview, or watching one of her lectures on the topic. Although her book goes into detail on the types of questions that can come up in these interviews, the general advice she gives in this lecture is solid gold.

u/uninverted · 18 pointsr/slatestarcodex

+1 for this. "I'm not a programmer, but I work well with them and can translate for them to non-technical people." is exactly what a PM is. You might find this book valuable.

u/m1001101 · 17 pointsr/femalefashionadvice

For a software engineering position? I highly recommend Cracking the Coding Interview if you're looking for something to prep!

u/yes_yesiam · 16 pointsr/UBC

You do not need to enrol in co-op to get a job this summer, or any time for that matter.

Take initiative and apply to jobs independently. Job fairs are a great way to get an interview, and both the CS career fair and the Engineering career fair (there'll be a mix of companies, but companies hiring for Software devs will be there) are coming up soon. There are also plenty of opportunities to apply online. Check out student services periodically for resources (like interview prep strategies and the like), similar to what you would get in co-op. Get CTCI and practice. Practice technical interviews with your friends. Talk through problems as you solve them. You got this.

If you don't have a job lined up by the time summer registration opens, register for summer courses, but keep trying to get a job. You can drop the courses if you get a job, or take the courses if you don't.

u/gryphus-one · 16 pointsr/stanford

When I went, there were always a few companies where the representatives had a badge that said "I hire frosh." My advice would be to check it out to get a feel for what's going on. I wouldn't expect a whole lot, but at the very least it'll be good prep for the frosh/soph fair.

A word of advice - when I went to the fall career fair during my freshman year, I actually found it quite stressful. I ran into a couple of recruiters who came off as condescending, and the overall atmosphere seemed pretty stressful (gotta hustle for that internship). It was a bit of a contrast from the dorms and even office hours, where people are generally happy to lend a helping hand.

When I took CS 103 later, Keith Schwarz actually had a fairly negative view of the effect/messaging of the fall career fair towards freshmen. He felt that the competitiveness and the inevitable rejection of certain internships would not really provide a positive view of one's learning. Learning is a long process, and getting rejected from a dream CS internship might lead some to feel that their classes were for nothing. It's ultimately up to you whether you want to view your CS education as more of a pipeline into a good job, or an opportunity to intellectually explore (you can of course balance both, and there is no right way to do it).

So if you wanna hustle for an internship, then by all means go for it. However, keep in mind that the career fair is only one way to get your foot in the door. If you wanna be a real snek, network around and find people who can give you referrals for companies you're interested in. Also code up a project or two and put it on GitHub (with a link on your resume). Most importantly, read the good book.

u/jsyeo · 15 pointsr/singapore

Let me be a devil's advocate here and defend why companies wouldn't pay > 5k a month for a 10x programmer.

First off, our typical firms in Singapore can't appreciate good technical value. They can't tell the difference between work done by a good programmer and one done offshore. To them, it's just like buying a chair. If I can get a much cheaper chair in India, why not? They are still used to judging quality by experience. In fact, technical quality can't be judged by experience and the number of projects you have done. A fresh poly grad might be way better than a programmer with 5 years experience and a CS degree. If the poly grad spent his time in poly dabbling in new technologies and programming languages, writing code for open source projects, he might be way better than the CS grad that stagnated in his J2EE job.

Also, good technical value is very hard to measure. Even Google have problems measuring this. Even if you care about technical value, you may not be able to tell if the person you are hiring is good. An interviewee that aced a coding interview may not be a good programmer. It simply means that this guy is good at solving such questions. (It's possible to cram for such interviews as if you're studying for Os by studying technical interview 10 year series, mind you.) He might ace the interview but suck at writing production quality code. Instead of using well tested libraries, he might hand roll his own red-black tree and crypto library >_<. What's more, such programmers may not write high quality, readable code. And, good programmers may not pass such coding interviews. One classic case was when this guy who wrote a program that's used by 90% of the engineers at Google, failed to pass Google's technical interview because he couldn't invert a binary tree.

Unfortunately these are hard problems. Fixing the first problem requires a mindset change from employers and key business decision makers. The second requires companies to change their hiring practices. Try pair programming some projects with your interviewees. That way you can get them to articulate their thought process and see how well they handle real world problems.

u/Bonta-Kun · 15 pointsr/learnprogramming

I've found Cracking the coding interview to be an excellent resource. That book together with online sources helped me get several internship offers. The book won't spoon feed you from the ground up - but will cover all the topics necessary. The interview questions are all about PRACTICE! Spend a lot of time thinking about how to solve programming questions, the complexity of your solution, and ways to improve your solution.

After a while, you should reach a point where you start recognizing patterns when you see a new question. There are often existing data structures (that you must know backwards - like hash tables) that you can use to solve a given problem - try and think of which one fits the question nicely.

Finally, read this. Good luck!

u/tapt_out · 15 pointsr/cscareerquestions

GET OFF YOUR SAD HORSE MY FRIEND. There's literally never been a better time to be a technologist who wants to learn more (and get paid more).

Yes, you're struggling. Yes, you want to change. But DON'T FEEL CONSTRAINED BY YOUR DEGREE. Draw on the experience you've had and look for new challenges. You certainly don't have to be a manager if you don't want to be.


if you think theory is holding you back, there are AMAZING online classes - online algorithms classes from Stanford/MIT. (The Stanford one is more of a refresher on basics). If you're finding that algorithms are holding you up in interviews, then read "Cracking the Coding Interview,"' cover to cover.

EVERYONE is looking for great technologists right now. Our company (untapt) is US-based, but feel free to message me with questions.

u/dowcet · 15 pointsr/AskAcademia

I wish I’d read The Professor Is In. It is NOT to early for you to start focusing on what you need to do now to land the job you hope to land after you graduate.

u/WIKiMescudi · 14 pointsr/digitalnomad

I was in your position two years ago. Im 30 now and I couldnt be more happy.

It depends on what area you would like to expertice on but I think you should start with "Pragmatic thinking and learning" https://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050

You will learn how to learn anything and how to schedule your learning. If your goal is web development I could tell you how I did It.

u/rogelius · 13 pointsr/cscareerquestions

I am going to give my perspective, but as always, your milage may vary.

>When and how did you start?

I didn't start programming until I started in college. I knew I was good at Math, and good at Science, and that I was interested in Computers. I pursued a CE degree (I was 18 at the time), and am now pursuing a Ph.D. in CS. My wife started her CS degree 1 year ago (she's now 25), after being dissatisfied with (and subsequently abandoning) a degree in Marketing. For the sake of mentioning it, we both started with Java.

My real point is: I don't think it's ever too late to start. If you're sincerely interested, your passion will take you far.

> What are some daily things you do that drove/drive you to your goals?

I consider programming a type of carpentry, and so, I strive (and don't always succeed) to program as much as I can, in as many languages as I find interesting. So far, I've programmed in Java, Python, Javascript, C#, C, Objective-C, and Lisp. It can be daunting to learn new programming languages, but I wouldn't worry. I got around to playing with each one because I found they were good tools for things I wanted to do. In academic circles, I believe that's called "project-based learning," where you learn as much as you need in order to complete some project or task.

> What books do you recommend, ones that have had a huge positive impact in your professional career?

I absolutely love the Head First series, and it made me value my own unique learning style (which in turn led me to discover that I learn better through projects). I own 6 Head First books, and I absolutely love each and every one of them.

My wife recently discovered (and I also really enjoyed) the book Cracking the Coding Interview, which is a concise review of the fundamentals of programming, as well as very good guidelines for doing well in your coding interview.

> What advice do you give to junior programmers that want to plunge into open-source community but are just overwhelmed by the amount of complexity in most of this projects?

If you're just starting out, I would start your own project to do something you want to do. The chances are that, in doing so, you will leverage someone else's tools, and in turn, you may discover that a tool you're using...
...has an obscure bug, or
...would be really great if it had this one other feature

You then contact the project lead (or project board of directors), and state your case, and then...BAM. You're an Open Source contributor.

> Which work-related fields are you most interested in?

I am a fan of artificial intelligence, and I think it's the bees knees. I also do game development, which I enjoy very much.

> What was your first big investment after your degree?

I bought a car, mostly because I needed it. Bear in mind, I am on a graduate student salary, which isn't necessarily the most financially rewarding position out there.

If you have any other questions, or if you would like me to go more in-depth into some of the previous questions, do let me know. :)

u/xfoxyx · 13 pointsr/cscareerquestions

CTCI the "holy grail" of interview prep in this subreddit :)

u/elliotbot · 13 pointsr/cscareerquestions

> I was wondering if a DS course was necessary to do well on Leetcode problems

Nope:

u/nonanonoymous · 13 pointsr/UofT

Someone that hires first years here [1]:

Resumes

I can only speak from the perspective of a smaller company, but I have several suggestions, some of which may be more applicable if you're going to apply to somewhere with less than 100 employees:

  1. A good resume is a must, this is a template that I recommend, keep it one page or less Make sure you get someone else to proof read, because it's a HUGE ding to your 'getting an interview' score if you have obvious typos in your resume.

  2. Some things I look for are open source contributions (github links are very valuable), even if they are just documentation changes. [2]

  3. Also, make sure you include your full (legal) name, phone number, email, and mailing address. Some people don't do this and I probably won't bother emailing you to ask you for those details if you don't include them.

  4. Even if you don't have any personal projects, have taken CSC240, CSC236 or CSC207 and having >80 usually means that you'll at least get an interview as a first year, but larger companies probably won't know the significance of having taken 240.
  • If you want an internship at big-4, you will probably need to talk to an on-campus recruiter at somewhere like YNCF, or have an internal reference. I don't know anyone that even got an interview as a first year except for within those means.

  1. If you've placed in a hackathon or have interesting (or challenging, and well put together) personal projects, that's also good enough to at least land an interview at my company.

    Cover letters

    Some companies will care about cover letters -- I personally count it as a negative if you include a cover letter that is obviously templated:

    Dear hiring manager, I see you are doing [some random thing copied from our website] and I am myself very passionate about [that thing]...

    If you are actually reaching out specifically to join my company because you know someone else that's worked here, or you've used our product and want to work with us for that reason, a cover letter is probably appropriate.

    Interviewing

    Interview in as many places as possible. There are really only two things you should be focusing on as a first year: Cracking the Code Interview, and not being too nervous.

    Seriously. Buy cracking the code interview [3], and spend a week or so solving problems and learning memoization / pointer manipulation / dynamic programming. You'll be SO much better off.

    I find that if you think of every interview as "interview practice for when it matters in later years" you will not be so nervous as a first year. Expect to not know the answers to some questions, and just explain what you are thinking to get "part marks." Freezing up looks much worse than going down the wrong path with confidence.

    References

    [1] I'm CEO of ParseHub -- you can contact me at [email protected]

    [2] I also do optional lectures for CSC207 on Fridays noon-1PM @ BA1200, one of which will be on how to make open source contributions. Feel free to email me if you want to come.

    [3] It's available on amazon

u/Gunner3210 · 12 pointsr/cscareerquestions

I have been through 3 Microsoft Internships and am currently a full-time employee there.

First of all, congrats on securing the interview. 5 days might be a little tight. But I would recommend you take all 5 of those days off from school and study these two books thoroughly:

  • Programming Interviews Exposed
  • [Cracking the Coding Interview] (http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X)

    You must study these books and the problems in them very carefully. The basic data structures such as lists, arrays, stacks, queues, trees and hashtables - you should know these and associated algorithms like the back of your hand. You should be able to produce code for algorithms such as inserting to a list or searching through a tree in a few minutes. Most problems can be solved by using a specific data structure and some associated algorithm.

    You will most likely have 2 back-to-back 45-minute interviews. Both of these will be highly technical and focused on algorithms and data structures. Typically, you will be presented a problem. For example: determine if a linked list has a loop or not. You must then come up with a solution to this problem and be able to explain the algorithm to the interviewer. You should also be able to quickly analyse the time and space complexities of the algorithm. Finally, you will be asked to code this algorithm. Here, knowing a specific programming language is not important. So put down your C Programming Language book and start reading the other two I have listed. You can code in pseudocode. The syntax is not important - only the algorithm.

    If you manage to do all this in less than 20 minutes, you will typically be asked to answer an extension to the same problem. For example: Find the exact node where the list loops back on itself. Then you repeat the same process and solve this modified problem. Alternatively, you may be asked to describe yourself (small-talk). However, these HR style questions have very little impact on your result.

    If you are ever stuck, you can always ask for clarifications from the interviewer. The interviewer will also provide hints if you seem to be struggling. Always think aloud as this will allow the interviewer to stop you from thinking in the wrong direction. The second interview will go the same way but with a different interviewer and problem. Remember to ask when they will let you know of the interview result.

    After you have studied your books, go through glassdoor/careercup and search for interview questions. Sort these by date and learn the latest ones thoroughly.

    If you managed to do everything right, you should be invited to Redmond to do your real interviews. Good luck!
u/vexion · 12 pointsr/LawFirm

Congratulations on striking out on your own!

Pick up a copy of Jay Foonberg's How to Start and Build a Law Practice. Foonberg's old and some of the information is outdated, but it's a pretty big book with a wealth of info for new solos. There's also Carolyn Elefant's Solo by Choice, and blogs such as Elefant's My Shingle, Lawyerist, and /u/KeithRLee's Associate's Mind.

I think standard advice for new solos is that networking is king. Your best business as a new solo comes from referrals from other attorneys. Build relationships early. Also, make connections with strong mentors in every area you practice in, especially if you have limited experience in that practice area.

If you haven't made an office-space decision yet, read up on the benefits/downsides of virtual offices (i.e. working out of home and meeting clients in Starbucks) or of office sharing (you don't have to partner up with another lawyer; just rent an underused corner of a larger office to save on rent).

Also, join/post on /r/lawyers. It gets more traffic than /r/lawfirm.

u/pat_trick · 12 pointsr/learnprogramming

If you want to pick up some Cryptography, The Code Book is a great intro.

Pragmatic Thinking and Learning is good for learning to learn.

The Pragmatic Programmer is good for project code planning and learning how to write code in a well thought out way.

Ethernet: The Definitive Guide is a good read if you want to get up to snuff on your networking, though it can be a bit dry at times.

u/[deleted] · 12 pointsr/neoliberal

I would highly recommend everyone read The New Geography of Jobs by Enrico Moretti. It is an amazing book and not difficult to digest.

Here is a snippet and here is the link to buy it off Amazon.

u/shiinee · 12 pointsr/girlsgonewired

I don't think I could do a mock interview exactly... not sure that would be kosher. But I can definitely offer you some tips from my experience with both the intern and full-time interviews.

How to prepare:

  • Study algorithms and data structures as much as you can. Google doesn't ask the type of questions where the answer is just "a hash map!" or "depth first search!". But those things will be the building blocks of your solutions, so know your tools.

  • Pick a language you're comfortable in ahead of time. Python is my favorite for interviews, since it's pretty terse and clear. But you can pretty much choose anything. The coding questions aren't language-specific.

  • Take some problems from a textbook or something and practice coding in a plain text document, or even on paper. No IDE, no compiler, no running your code, etc. You won't have any of those tools in the interview, so you should practice without them.

  • If you can beg, borrow, or steal the book "Cracking the Coding Interview" and read it in the next two weeks, do it. The author, Gayle Lakmann McDowell, worked at Google, where she interviewed a ton of candidates and was on a hiring committee. She also has an interview prep website, CareerCup, which I haven't explored.

  • There are some YouTube videos going through the interview process and providing some tips. I linked two but the "Life at Google" channel has more.

  • Feel free to ask the recruiter if there's anything in particular you should study or how you should prepare. They really want you to be ready and do your best, so they should be happy to guide you in the right direction.

    How to interview:

  • Take a deep breath first! (literally... you can mute for a moment so you don't sound creepy.) You can do this. You've studied for this and you're ready. Once you've got a problem in front of you, stop thinking of it as an interview at all. It's just coding, and that's your thing.

  • You may get a few easy questions first, but sooner or later you'll be faced with a problem you don't know how to solve. That's exactly as intended. The interviewer wants to know how you approach a hard problem, to get an idea of how you think. In fact, solving the problem is not necessarily the goal.

  • Ask for clarification about the problem. What does the input look like? What does the output look like? How big is the data? How should you handle a certain edge case? The interviewer will be happy to answer, in fact, sometimes the problem can only be solved by asking the right questions first.

  • If you're stuck, your interviewer will likely toss out a hint or nudge you in the right direction. Definitely pay attention to that hint, because the interviewer is honestly trying to help you succeed.

  • Think out loud. As long as you aren't typing, describe what's going through your head. "Well, the naive solution for this would be [...], but that would take O([...]) time, and I think I can figure out something better..." The more you say about what you're thinking, the easier it is for the interviewer to help you. Having been on the interviewer side, it's really hard to think up a hint for someone who's just going "hmmmmmm" over an empty doc.

  • No matter how interview #1 goes, you have a clean slate with interview #2. So stay calm, and whatever happens, let it go and focus on the next problem.

    What's next:

  • For interns (at least when I was an intern), they don't do onsites. So this is the main part of the interview process that is basically intended to assess your technical abilities. If it goes well, the rest will be placement interviews where you'll talk to potential hosts and try to find a good fit for an intern project.

    Good luck!! It's always really exciting for me to hear about young women applying to Google. Hopefully I'll see you rocking the propeller beanie this summer. :)

    P.S. I love your username. Avocados are amaze balls and I don't know what I would eat if they didn't exist.
u/Revocdeb · 12 pointsr/learnprogramming

This book helped me: Cracking the Coding Interview: 150 Programming Questions and Solutions https://www.amazon.com/dp/098478280X/ref=cm_sw_r_cp_apa_rtPIzbM5ZMZXD

It goes over data structures and algorithms as well as many other common questions.

u/BrandonKNewman · 11 pointsr/cscareerquestions

> My strong suit is ruby/rails which I feel like is pretty rare and specific when it comes to most internship positions. (I can count on 1 hand the people who know rails in my school).

First off, trust me, you're not that special.

> So far, I have had interviews with 6 of the companies, and have yet to miss a question, & every time I am able to solve the technical questions relatively quickly (e.g. 45 min coding problem, done in 20 etc.) and then we go on to talk about interests etc. The thing is EVERY single company, after the technical interview (usually the 2nd-3rd phone interview), I am in limbo. Usually from 2-3 weeks, before I get denied.

So far, I'm picking up an attitude problem.

> I have only now started asking for feedback(but of course nobody replies to my emails).

Yeah, don't do that.

> I know they are large companies (vmware, yahoo, dell, etc.) but is it strange to have an interview go well and then just go into the void?

YMMV, but it's entirely possible. However, for myself I'd say 95% of the time, someone gets back to me.

> Also I am not socially inept, yet it always seems as if me and the recruiter get along great, while the technical people give off a cold disconnect (but still nice).

How often is this happening? I'd say there are some technical people who are just like that, but I'd say the majority of the time I see them acting that way in an interview is because it isn't going well.

> However it seems pretty inefficient to apply to jobs with 2000 kids hunting for 2 open positions, so it may be the lottery effect that is killing me.

Maybe, but if you're applying to 100s of jobs, you'd think something would eventually edge out in your favor.

Honestly, to me it sounds like:

  1. You give off a cocky/bad attitude

  2. You aren't doing as well on the technical questions as you think you are.

    There's nothing much you can do about an attitude problem other than hold your tongue and think before you speak on anything that isn't directly related to the technical question at hand. Explain, don't boast about past projects and experiences. Be open to learning.

    As for technical questions, the best I can do is prescribe the usual: Cracking the Coding Interview. Good book for getting the basics down for technical interviews. Others will suggest other books after that, but I've had good luck with geeksforgeeks and the interview section of Glassdoor for companies like Google and Yahoo for going above and beyond.
u/EaterOfBits · 11 pointsr/ITCareerQuestions

Just to give you a peace of mind, I'm gonna share that I'm utter shit too. I have almost 20 years of experience and working at a huge worldwide company. I have conducted more than a hundred interviews myself and yet, if I apply to somewhere I can't write a simple parsing script in a coding interview.

Some of us just wired this way. Also interviews are like a date. It is equally up to chemistry and luck along with correct answers to questions if you get the job.

To be useful too, a few links. Check out this for inspiration:
https://rejected.us/

The best book to get an IT job:
https://www.amazon.co.uk/Cracking-Coding-Interview-6th-Programming/dp/0984782850

u/tiethy · 11 pointsr/UBC

After looking at your post history, it seems you're a 2nd year majoring in stats? I would just continue on the path you're currently on- best case scenario, do as many 300 / 400 CPSC courses for your electives that you can. Worst case scenario, try the BCS program after you've graduated.

I completed a 5 year CS degree with 16 months of co-op experience and a ~90ish average in CS courses and have been working in the industry for about 3 years. Here is the breakdown of where I learned how to develop:

  1. 10% CS degree (and this is just me being very generous- admittedly I wasted class time by sleeping but I completed most assignments accurately and studied intensely for all of the exams)

  2. 5% co-op (got unlucky with my internships)

  3. 60% work experience

  4. 15% self learning (through textbooks, reading blogs, research)

    I totally understand how anxious people would feel after getting rejected from CS but it's honestly not the end of the world. If you're willing to put in the effort, there are so many free resources out there that will help you learn how to develop. I assume you're done with 110/121/210... here are some resources that really helped me out:

    Code complete 2 - one of the best coding textbooks I've ever read... released for free: http://aroma.vn/web/wp-content/uploads/2016/11/code-complete-2nd-edition-v413hav.pdf

    Practicing for interviews (not taught in school) - https://www.amazon.ca/Cracking-Coding-Interview-Programming-Questions/dp/0984782850

    Learn the fundamentals of javascript... then learn typescript / react / whatever flavour of JS you hear about becoming popular... here's some site I found after 2 minutes of looking but I'm sure there are much better ones: https://medium.freecodecamp.org/an-introduction-to-object-oriented-programming-in-javascript-8900124e316a

    If you're really worried that your stats degree might hold you back... fill out your resume with hack-a-thons and side projects and apply for CS internships. Email recruiters directly if you don't hear responses from normal application processes. When building your resume, start with the CS stuff and leave the major at the end... make sure that if a human ever reads your resume, they'll be reading about how much you've learned about development on your own rather than which major you happen to earn your degree in.

u/Alektorophobiae · 11 pointsr/OSUOnlineCS

Grinding problems, haha! I can't answer your more specific questions, but I'll distill the resources that I have found to be most useful. The types of questions will depend on wherever you are applying and you might not even get technical questions at some places.

  • Elements of Programming Interviews
  • CTCI
  • leetcode

    I would start with CTCI then, if you feel like it, move on to Elements of Programming Interviews which (I think) has more difficult problems. All the while just grind problems on leetcode. Also, make sure to practice answering these questions without coding in an IDE. I have just been using a notebook and pencil. A whiteboard works too. Before beginning any sort of coding, you should have the general algorithm down that you will use to solve the problem.

    It also would be helpful to know how to implement / be familiar with the following:

    Data Structures

  • Linked Lists
  • Dynamic Arrays
  • Hash tables / dictionaries (Definitely know how to use these)
  • Binary Search Tree
  • Queue
  • Deque
  • Stack

    Algorithms

  • Binary Search
  • Quicksort
  • Mergesort
  • Insertion Sort
  • Dynamic Programming
  • Bit Manipulation
  • DFS
  • BFS
  • String Manipulation( reversing, detecting palindromes, word count, counting repeated words, comparing strings)
  • A*


    OOP (define these)

  • Interfaces
  • Abstract classes
  • Polymorphism
  • Inheritance
  • Encapsulation
  • Overriding
  • Overloading

    Other stuff:

  • What happens when you type www.google.com and click enter on the browser
  • Algorithms Course Heard this is really good

    Finally, know Big-O complexity Big-O Cheatsheet! I'm sure there is a lot more but this should be a great start.

    Good luck! :)
u/mickrobk · 10 pointsr/programming

Programming Interviews Exposed is an extremely good resource, Steve Yegge also has a good post on areas a programmer should be proficient in.

Nothing is really a substitute for being knowledgeable and enthusiastic.

u/cjt09 · 10 pointsr/compsci

I'd recommend buying one (or both) of these books and reading through them:

  • Cracking the Coding Interview
  • Programming Interviews Exposed

    Each of those books has a wide range of programming problems that are commonly asked during an interview. I highly recommend going one question at a time and actually trying to solve them yourself before looking at the solution. This way you won't simply have a dictionary of interview questions--you'll also be able to develop the skills to figure your way through similar problems.
u/bitparity · 10 pointsr/AskAcademia

I just bought this book, which is less a narrative, but rather more of a hard, truthful, as well as insightful look into the problems of humanities academia, and how best you can survive them.

https://www.amazon.com/Professor-Essential-Guide-Turning-Ph-D/dp/0553419420/ref=sr_1_1?ie=UTF8&qid=1494283261&sr=8-1&keywords=the+professor+is+in

My only tip for you regarding imposter syndrome, is that everyone has it. However, you keep that truth buried deep in yourself. When it comes time to talk about your work to others, or in a job interview, YOU PUT ON THAT IMPOSTER MASK AND NEVER BLINK OR TAKE IT OFF until you're back home.

We all wear masks to function. Learning to live with them is an essential life skill.

For other examples of why this is essential, I'd also like to cite Dr. David Chappelle:

https://vimeo.com/58226569

u/SomePirateDude · 10 pointsr/cscareerquestions

I work at Google (full-time). Before Google, I had been writing software for 8 years professionally (Computer Science degree). I would say that every other day for about 1 month I spent about 2-3 hours preparing. Looking back, I probably over prepared, but I would rather have that than be underprepared. Here's how I prepared:

  • Every day, do several questions from Cracking The Coding Interview and the CareerCup website. I didn't get to every question in the book
  • Listen to Berkeley CS Data Structure courses while at the gym.
  • Put together a binder of all important CS data structures I wanted to be able to quickly review.

    In the end, the interviews were easier than I imagined. Couple of n-ary tree questions, a distributed computing question, a math/algorithm question and a basic Java coding question.
u/jpstevans · 10 pointsr/cscareerquestions

Current Microsoft intern here! You've got your first sentence perfectly in order of increasing importance. Since you interned at IBM, I'm assuming you have a decent grasp of data structures and algorithms. If not, you now know where to start!

Do some thinking around your app -- if that's a highlight for you, then it's going to come up. Who was your audience? What was the goal of the app? What were the design choices you made? What could you have done to make it better? faster? more secure? What did you learn?

Go pick up an interview book or two -- I used Cracking the Coding Interview to prepare. If you notice yourself stumbling anywhere (especially the first two-thirds of the chapters), be sure to do some learning around the things giving you trouble.

I wrote about my interview experience at Microsoft, if that interests you. It's also got some links to other people's experiences.

u/ShadowWebDeveloper · 10 pointsr/cscareerquestions

Depending on how much project management you do vs. personnel management, there is Cracking the PM Interview by the same author (though possibly ghostwritten).

General personnel management probably involves more general management interview questions, for which I'm sure a million books have been written (though I don't know enough about them to recommend a specific one).

Edit: If you haven't already, though, read Peopleware. If more shops were run like they suggest, the world would be a better place.

u/silveryRain · 10 pointsr/learnprogramming

You can either learn to crack the interview or reconsider your job search strategy. Sure, you may not be able to analyze the complexity of a travelling salesman solution, but you may be able to find an employer who instead cares more about software engineering, tooling expertise (version control, CI etc.), expertise with a particular technology (you mentioned PHP), a well-rounded approach to software development in general, soft skills or whatever else you're confident you may bring to the table.

u/letsencrypt · 10 pointsr/webdev

Here is an interactive page where people can visualize how Quicksort works, this is one of the most widely used sorting algorithms, once understood you can pick any of the other popular ones: Bubble, Insertion, Heap, Selection, etc. CtCI — Cracking the Coding Interview is a good book written by an engineer who used to be part of the recruitment team at Google and other "Big 4" companies, I really recommend it, every page is worth its penny*. Leet Code is also a good resource to learn and practice algorithms, most of the exercises have articles with good explanations of how to solve the problems.

u/goodDayM · 10 pointsr/Austin

Best advice I can give is check out this book from a library (or buy): Cracking the Coding Interview: 189 Programming Questions and Solutions. It's written by someone who worked as a software engineer at Google & Microsoft and did interviews.

Doing problems out of that book helped me remember some important things that were actually asked about in interviews. I ended up getting two job offers at the same time which allowed me to tell the other company what my offer was and get them to raise it quite a bit.

u/rnelsonee · 10 pointsr/personalfinance

I liked Suze Orman's book for young people. But it sounds like your daughter has a spending problem, which isn't quite the same as "I'm ready to learn how to plan for my future".

u/sooperkool · 10 pointsr/cscareerquestions
u/Xeronate · 9 pointsr/learnprogramming

This video is a Google interview example so of course the problem is a bit contrived, but I think it is a decent illustration of the process he is referring to. The guy writes the code out in C++, but you could just as easily write in pseudocode.

Solving the problem by hand and writing a sketch of the algorithm builds intuition and makes the actual code much easier to write. People knock interview prep as being nothing like the job, but I find that it can do a lot to boost general problem solving. CTCI and leetcode are good resources. If you are brand new to programming Codingbat might be useful, but it is really just for the basics.

u/ajsherlock · 9 pointsr/AskWomenOver30

When I transitioned to my last job -- from higher education to corporate finance, I used The First 90 Days. I thought there were some good points, and was able to apply a lot.

u/naxir · 9 pointsr/cscareerquestions

I went through the Google interview process not too long ago. Here's my recommendations:

  • Don't focus all of your effort on one concept. You will have at least four different types of problems and there is no guarantee that DP will apply. While this is an anecdotal n=1 observation, I did not have any DP problems. You should still look into DP so that you may better understand where to apply it and the basics of applying it, but don't neglect other areas (graphs for example).
  • Grab cracking the coding interview and practice on a white board. I used a small travel whiteboard that you can get on amazon for ~$6.00. (Though, based on the reviews, I also grabbed some better markers.)
  • Practice easy questions to warm up, then give yourself 30-40 minutes to solve the more challenging questions.
  • Don't focus on memorizing the exact implementation of different algorithms. Know their basic flow and different places to optimize, but more importantly know where to apply them and what their complexity is.
  • Remember to talk through the problem before solving it. Your interviewer will often give you some indication of whether or not it's the solution they want to see. When actually writing the code, don't feel obligated to explain every line as you're writing it. If you feel like you're making a good decision, explain what it is and why in a sentence or two, but otherwise focus on getting your thoughts on the board. You should explain your solution at some point, but unless they ask questions about it, don't feel obligated to talk while you write.
  • Don't try to solve every part of the problem at once. If you hit something you're not sure how to solve, call a function that does not yet exist and tell them you'll come back to its implementation.
  • You mentioned being able to solve things in 23 minutes. I don't think that really applies. Some interviewers will give you one hard problem which may be optimized several ways. They will expect you to implement a solution and spend the rest of the time optimizing it. Other interviewers will give you perhaps 4 problems, but all of them are inter-related and earlier solutions to problems are used as components to later problems. You may also be given one or two small warm up problems before a larger problem. However, it is unlikely that you will be given two very different and complex problems and have 23 minutes to complete each one. Furthermore, completing every problem isn't a requirement. Demonstrating good problem solving skills is. Don't focus on a specific amount of time, focus on the problem solving process. This is also true because it will take you less time to solve the problems in the interview because of guidance from your interviewer.
u/Dont_Hate_On_XIII · 9 pointsr/uwaterloo

Have you seen the SE Bible?

u/BrutalHonestyBuffalo · 9 pointsr/ehlersdanlos

It took me awhile to go "AHA - THOSE ARE SUBLUXATIONS?!??!".

My elbow is my most obvious - when I go to grab something, or move too quickly, I will feel (and sometimes hear) a click or pop and then for a moment I am in excruciating pain - until it slides back into place.
But I also sublux my left hip pretty often - which is usually more of a flash of confusion, discomfort, and it stops my world (but not nearly as painful as my elbow).
I do have other locations that sublux (my left shoulder and my ribs...ugh, the ribs) - but they are less frequent. Also, lately I have been experiencing a lot of pain in my feet - which I have started to maybe think are subluxations.

I think you'll find in responses from others - that subluxs can range from super painful to almost none based on how often they occur and where. Generally if it feels like a click or pop, or the joint catches - it may be a sublux.

The medication that helped me most was Diclofenac (anti-inflam) and Gabapentin.
Gabapentin was okay, but Diclofenac CHANGED MY WORLD. It's behaves differently than other anti-inflams (though, I don't know the technical reason why).

Flare ups - frankly, I just do whatever I can to get through them. Sometimes they last a few days, sometimes a few weeks - but I just ended what I essentially believe to be a two year flare up - or rather, two years of sequential flare ups as different parts of my body affected each other and caused problems. However - this was because no one knew what was wrong with me and I was doing all the wrong things and getting the wrong treatment.

Now that I know what is going on - I am more capable of reducing the length of time by doing the right exercises (Muldowney Protocol) and avoiding activities that cause me to injure myself further.

How bad will this get? No one can answer that, unfortunately. But the best thing is that now you know what you are experiencing, you have the knowledge to avoid the things that hurt you as best you can.
For example, I cannot cross my legs or twist my body if I want my SI Joint to stay in place. I just can't.

Strengthening your muscles is the #1 way to improve your odds. I just described why the other day in another thread.

One of the big things we also need to learn to do is pace ourselves. Have you heard of the spoon theory?
Gotta learn how to prioritize those spoons. It can be a tough pill to swallow - I started this journey in October of last year (still waiting on my geneticist appt) with a clinical diagnosis, and I am still coming to terms with certain things I want to do, but shouldn't.

As for using a cane or stick - a lot of people do. If you think it will help you, it may. For me, sitting still generally causes me more issues that getting up and doing some slow, calculated moving.
You may also want to look into bracing for your bad days - work with your physio on this, they should be able to help you establish if any braces help. For me, a lot of my pain stems from my SI Joint upslipping. Almost all of my pain radiates from that point (it has causes S Curve Scoliosis, Lordosis, which has my neck out of wack - which then causes nerve issues down my right arm and down my left leg).

There are braces for the SI Joint - but again, the best policy is core strengthening.

Lots of people go on disability (in the US, not sure what it is called elsewhere) for EDS. From what I understand - it is a long hard road, but if you have good doctors and patience, you can make it happen.
I actually just received a handicap placard (for disabled parking) last month, though - thankfully - I only need it occasionally when things are at their worst.

As for advice - read these books (they can be expensive, but in the grand scheme, they are great):

Joint Hypermobility Handbook- A Guide for the Issues & Management of Ehlers-Danlos Syndrome Hypermobility Type and the Hypermobility Syndrome - This was written by the "EDS Guru" Dr. Tinkle. It is awesome and will help you through a lot of what you are experiencing.

And personally, I really like the Muldowney Protocol - this is a Physical Therapy regimen specifically for EDS patients. I have had a lot of success with it - as traditional PT actually injured me further.

Feel free to reach out to me to talk. It is scary at first - but there are ways to manage it. At first you feel very uncomfortable and anxious - and you actually spend some time "mourning" the life you wanted to lead. But eventually you find a new normal, have some small successes, and realize that you'll survive - just in a different manner you anticipated before EDS because a part of your life. :)

u/Ektastrophe · 9 pointsr/cscareerquestions

Disclaimer: I teach at a bootcamp in the midwest.

Here are some things I'm noticing:

  1. Your job sounds like it sucks quite a bit.
  2. You're feeling a lot of pressure to make a big move right now.
  3. You're feeling afraid that you don't currently have what it takes to make a big move.
  4. You've got some funds saved up.

    I'm going to suggest a couple of things to try before you enroll in a boot camp.

  5. Spend a few hours researching job boards in your area. Make a list of jobs where you've got 50% or more of the qualifications listed, or where the thing listed is close enough to what you already know that you could learn it sufficiently quickly. Make another list of things that appear pretty frequently, and see if you can categorize them. What's in your area? In my city, we've got lots of graphic designers who mostly build out Wordpress sites, a small but growing number of startups who mostly use Rails or an MVC Javascript framework, and a whole bunch of big finance corporations who mostly use Java. Your city is probably different, but it's also got some trends.
  6. Reach out to your network. You surely know some folks from college, from meetups, etc. Don't tell them that you need to escape your current terrible gig, but do tell them that you're looking for a change and see if they know anyone who's looking for a junior dev, especially one with a CS degree. Be frank -- you've been working mostly QA and support for the last year and a half, and you'd like to move to development instead.
  7. Take a few days off. They can even be unpaid days (if you can swing boot camp tuition, you can swing not getting paid for a few days). Doesn't even matter if you code on those days off. Just give yourself a chance to be a person.
  8. Pick up a copy of Cracking the Coding Interview and practice. Don't know Java? No problem. Do the exercises in a different language. Do one-sided mock interviews and record your answer with your webcam, then watch it. Don't worry about 'ums' and 'uhs' -- instead worry about clear, concise, and precise responses. (NB: almost everyone hates watching themselves talk, and almost everyone finds it excruciating. Don't worry about that part. You don't suck anywhere near as much as you think you do).
  9. Once your finances are set (i.e. at least 6 months worth of living expenses in the bank. Even better if you've got a year of living expenses, as that'll help if you've got an emergency), quit your job.

    From here, it's a matter of learning. You're never going to learn everything (there's too much out there), but you can definitely learn quite a bit.

    If you've got a CS background, you should be able to pick up the basics of Ruby on Rails. Michael Hartl's Rails Tutorial is pretty commonly cited; if you want to do web development, go through this tutorial twice. Maybe three times. Then start building projects on your own. Alternatively, Daniel Kehoe's Learn Ruby on Rails is also pretty commonly cited.

    A good understanding of Rails, plus a solid foundation in HTML, CSS, and Javascript/jQuery will make you a reasonably compelling junior developer for a company that builds web applications. Doubly so if you can show off a few good personal projects. A good bootcamp (like the one where I teach) will give you a structured and guided opportunity to learn these skills. A terrible boot camp will also give you this opportunity, but you'll have to work a lot harder on figuring out how to make it all happen.

    In addition to self-study and building projects, start attending meetups and actually talk to people.

    If you do decide to start looking at different boot camps, here are some questions to ask:

  10. What will we be learning?
  11. What sorts of jobs do graduates have?
  12. What are your placement rates? How many graduates have internships after graduating, and how many go into full-time jobs? What sorts of support do you provide graduates who are searching for jobs? How long does it usually take for all the graduates from a given class to find jobs?
  13. What is the typical experience for new graduates in their first 6 months as an employee?
  14. What are some examples of student projects? What are some examples of average work? Some examples of really stellar work?
  15. What opportunities will I have to design and build a project of my own determining? How many portfolio pieces can I expect to have by the time I graduate?
  16. What are some examples of typical days?
  17. Who's the instructor? How long have they been teaching? What are their qualifications?

    Of course they can lie to you, or use weasel-words to obfuscate, or make stuff up, or.... Of course that's the case.

    A good boot camp will give you lots of opportunities to practice AND will help you find your first job. We (where I work) do a lot of talking with recruiters and companies in our network, and we work really hard to make sure that our students get jobs that offer lots of opportunities for growth and development, and, when possible, that align with strengths and interests (there's not usually too big of a disjunct there). So far, we've had quite a bit of success in terms of our students finding employment, and even the companies that have been resistant to hiring students like our grads have started coming around (albeit slowly) as more and more companies hire our grads and have good experiences with them. But it'll be at least another year or two before our grads reliably get hired as junior devs in the bigger corporations (as their first or even second job) without first having a CS degree.

    There are lots of different ways you can find success, and almost anything you do (quit your job and self-study, stay at your job and self-study, go to a boot camp, backpack around Europe, and so on) can be reasonably explained in an interview, especially if you can demonstrate that you are someone who is smart and gets things done.

    Even your current job can be explained. Sure, your dev skills aren't what you want them to be, but you've got a ton of practice fixing code, which means you've got a huge list in your head of all the different mistakes you might make while writing code (which then means that you can, given adequate leeway, build systems that help you avoid or at least catch those mistakes). Don't discount that. It's important stuff that you learned, even if the way you learned it makes you feel really terrible.

    Hope this helps.
u/YuleTideCamel · 9 pointsr/learnprogramming

Practice whiteboarding (solving technical problems on a whiteboard). Try to read Cracking the Coding interview . If you look online you might find a pdf version.

General tips for the interview:

  • If you get asked a really simple question, don't be cocky or overconfident. Answer it professionally like any other question. This is often a personality test to see how you react when speaking to non technical people.

  • If you get asked an insanely hard quesiton, relax. Sometimes these questions are not about the answers, but about how you react to a difficult problem and under stress. Take a deep breath and make it a convesation with the interview. Talk out loud about possible solutions, even if you are not sure explain what you are thinking and how you would use your resources (books, google etc) to solve it.

  • If you don't know something (like a technical quesiton "explain templates in C++" ) just be honest and say you're not sure but will look it up. Don't try to BS.

  • Be positive about everything, it's ok to have opinions, but don't bad mouth technologies or coding styles, even if the interviewer does. Just explain why you don't like (whatever) in a polite way. Being too much of a downer can impact an interview. I once interviewed a guy who hated everything. "Angular? Stupid/dead, react? A fad stupid, Ruby on Rails? Hipster crap". He was super smart but didn't et the job because no one wanted to work with someone as negative as him. Oh when I asked him point blank "so what is good code?" his response "code I write". This is problematic also because it tells me he wants to reinvent the wheel for everything instead of solving a business need.

  • Be nice to everyone, receptionists, people you walk by in the hallway, interviewers, janitors, doormen. Anyone you interact with. We regularly ask everyone who interacted with a candidate their thoughts and we have turned down people because they were rude.

  • Practice solving problems on codewars or codingbat, just be ready to answer technical quetions.

    To be clear, I don't work for HP but I do work for a large tech company and I'm on a hiring panel. Good luck!
u/metahGVA · 9 pointsr/learnprogramming

Introduction to Algorithms is probably the best book if you want to go deep in algorithms eventually.

Cracking the coding interview book is also a great repository of "must-have" concepts for CS.

u/bittersweet587 · 9 pointsr/computerscience
u/nolsen01 · 9 pointsr/IWantToLearn

I think we may be looking for the same things. I read a book a few weeks ago called Pragmatic Thinking and Learning that I found really helpful and interesting. Its not too expensive and if you have the money I'd recommend it. Don't be intimidated by the programmer talk, none of it is really relevant.

Last week, I discovered a wiki that gave great advice on learning and memory techniques that seemed like it would have been extremely useful. I've spent the last hour searching for it but I just can't find it. When I come across it, I will let you know.

Another book that I found useful a few months ago was How to Read a Book. Don't let the title undermine the books value; its an awesome book. Definitely worth looking into. I don't follow the advice given in the book very rigidly, but since I've read it, I've found that I approach books much more methodically and absorb the information much more easily.

Its great to see that there is someone else out there looking for the same sort of resources I'm looking for. The way I look at it, learning is a skill that can be developed and mastered. It is an interesting pursuit in and of itself.

I haven't found any single resource for this sort of thing but maybe we can put together a subreddit where we can pool our resources for things that may be particularly helpful.

u/Good_For_Us · 9 pointsr/cscareerquestions

I second this. They take the effective altruism stance to making a difference, and choosing your career accordingly. In addition to the 80,000 hours website, I recommend the book Doing Good Better, by Will MacAskill.

edit: fixed link; not good at mobile

u/sqrrl101 · 8 pointsr/neoliberal

I'm just gonna slide in and hijack this thread...

If you think this is good (and you totally should), just wait until you hear about Effective Altruism (EA)! In essence, it's the idea that we should do the most good we can with the limited resources that we have, and in order to do the most good we need to rigorously evaluate the causes we donate to. GiveWell, probably the most notable EA charity evaluation site, recommends the Against Malaria Foundation as one of its top charities based on extensive research assessing the overall impact-per-dollar that donors can achieve.

If you'd like to learn more about EA, check out Giving What We Can and read about how much good you can do with your Monsanto/Koch/Illuminati shill bucks. And if you'd like to delve a little deeper, check out Dr William MacAskill's Doing Good Better, which makes a compelling case for evidence-based giving, and which challenges many orthodoxies about how to do good in the world, including a defense of the long-term positive impact of sweatshop labour.

u/Soreasan · 8 pointsr/cscareerquestions

Make your own projects or code to build a portfolio. Upload the code to Github to build an online portfolio.

Here are some excellent books that may help as well:

Elements of Programming Interviews

Cracking the Code Interview

Programming Interviews Exposed

u/poopmagic · 8 pointsr/cscareerquestions

>Do you find that the standard system of technical interviews (data structures & algorithms) is an effective way of assessing candidates? Why or why not?

When I was an undergraduate, the dominant interview approach involved brainteasers like "why are manhole covers round?" Initially, these were reliable indicators of future success. But after every other company started copying Microsoft mindlessly and asking the same set of questions, the approach quickly became less effective. People optimized for interview performance with books like How Would You Move Mount Fuji? and How to Ace the Brainteaser Interview.

Brainteasers were mostly phased out after Google introduced the current approach involving data structures and algorithms. Initially, these were reliable indicators of future success. But after every other company started copying Google mindlessly and asking the same set of questions, the approach quickly became less effective. People optimized for interview performance with books like Cracking the Coding Interview and Elements of Programming Interviews.

There are certainly parallels between what happened then and what's happening now. The difference today is that people have taken things to another level with platforms like Pramp and bootcamps like Interview Kickstart. New businesses keep popping up that focus on cracking the current system, and I don't think that bodes well for its future.

But what can we do about it? The fact is that any interviewing process can be cracked once its format becomes popular and standardized. Let's say that some major company like Facebook introduces a new standard that involves candidates giving two-hour presentations about significant personal projects and then answering tough questions from a committee. You may be familiar with this format if you've ever applied for a research position. I actually think this would be great for 2-3 years until everyone starts doing it and Gayle Laakmann McDowell or whoever publishes "Cracking the Personal Project Presentation." And then a bunch of new businesses will pop up to sell you slide templates, professional reviews, etc.

In short, I'm not a big fan of the current system (EDIT: because it's been "cracked") but I honestly don't know of a better one (EDIT: that won't suffer the same fate).

u/Fulminata · 8 pointsr/OSUOnlineCS

> I read that SWE internships typically have data structures/algorithms style interviews. Is this true?

Yeah, out of 3 offers only one of them had me do any interviewing that wasn't strictly DSA, and that was because they do banking.

>When's a good time in your OSU online degree progression for you to begin applying to internships?

Whenever you have time. It's July so you can probably catch the spring co-op cycle and definitely the summer internship cycle for most companies. All you need is enough data structures and algorithms knowledge to interview (anecdotally, I wrapped up all my interviewing while I was finishing 162 and discrete).

> How did you do it?

  1. I skimmed this $10 python dsa course first
  2. I skimmed cracking the coding interview (ignoring stuff like bit manipulation and system design, because most people aren't asking you that)
  3. And did common leetcode questions (only easy or medium though)


    Ultimately optimize for time, try to study stuff that 80% of people will ask you, but look at specific questions companies ask when you get down to the interview stage.
u/PM_ME_YOUR_SCI-FI · 8 pointsr/cscareerquestions

> Most of the jobs out there are temporary or contract (short/long/C2H)

This sounds patently untrue. I'm certain that the vast majority of people in CS have full-time jobs rather than temp or contract.

>
Recruiters won't even look at you if you don't have a knowledge in a specific stack (even for entry level)

Also untrue, especially for entry level, where good companies won't care what tech stacks you know.

> Recruiters don't even look at your resume, all they do is keyword search

Partially true. Resumes are often automatically filtered by how many buzzwords they contain. If you can use buzzwords without making your resume seem over the top, do it.

>
I've been told that I shouldn't even apply for SDE jobs because I'm a "tester" and how I probably don't know of any CS fundamentals (because my degree is in CompE, not CS)

Bullshit. Any company worth working for - most companies - will not take that attitude. They might be skeptical, but they would never suggest you don't apply.

> Interviewers don't seem to have interest in interviewing

It doesn't matter; it's their job. And most interviewers are competent at interviewing, so nothing to worry about, regardless of how "interested" they are. (Though an "interested" interviewer, while rare, is a pleasure!)

>
Companies have absurd hiring standards (they are all looking for a unicorn for 50-60k/yr pay, through contract)

Depends on the company.

> * Entry level jobs require years of PROFESSIONAL experience in a specific technology


Entirely false.

---

The current job market is fine, prosperous even. Craft a strong resume, post it in the resume advice thread, and send it out to companies. Apply to a bunch of companies, account for a 5-15% response rate (higher if you're more skilled).

Getting interviews will be the easy part; to pass them, you'll need to pass difficult algorithms questions. Books like Cracking the Coding Interview and Elements of Programming Interviews are essential reads; then go on a website like LeetCode and grind away at problems until you can solve easies in 20 minutes or less, mediums in 30 minutes or less, and hards in 60-120 minutes. I'd say a 3:9:1 ratio of easy:medium:hard would be a good ratio to go with, and do as many problems as possible until you're comfortable with where you are (for me, that was about 120 problems). The premium subscription is well worth it for problems tailored to certain companies.


Edit: spelling

u/ambr8978 · 8 pointsr/java

On a related note, I also recommend Cracking the coding interview (Cracking the Coding Interview: 189 Programming Questions and Solutions https://www.amazon.com/dp/0984782850/ref=cm_sw_r_cp_apa_Dr39ybRT8SJ94) as it is literally recommended by Google as study material for their interviews.

u/o--_--o- · 8 pointsr/DevelEire

hi
get yourself a copy of this
https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=dp_ob_title_bk?dpID=41J6k0AL6yL&preST=_SY291_BO1,204,203,200_QL40_&dpSrc=detail

have a look at this
https://www.pramp.com/#howitworks

watch a few mock interviews on youtube
attend meetups
join irishtechcommunity and have a look at the jobs section

u/kickopotomus · 8 pointsr/AskComputerScience

Go read Cracking the Coding Interview. It covers pretty much everything they are likely to ask you and has a bunch of practice questions with solutions/rationale.

u/forgottenCode · 8 pointsr/Veterans

Some tips...

  1. Look around at the curriculum taught by reputable boot camps to learn what is popular, as these boot camps are often concerned with career placement. Here's a list you can bounce off of: https://www.coursereport.com/blog/bootcamp-scholarships-for-veterans-a-comprehensive-list Here's what is taught by a boot camp in Seattle: https://www.codefellows.org/courses/code-400/

  2. Take a structured course like https://www.udemy.com/the-web-developer-bootcamp/learn/v4/ (don't pay more than roughly $12 for it; it's always on sale)

  3. Work towards building a portfolio of programming projects

  4. Gain some insight from the Stack Overflow survey https://insights.stackoverflow.com/survey/2018/

  5. Prepare yourself for coding interviews https://smile.amazon.com/gp/product/0984782850/ref=ox_sc_sfl_title_10?ie=UTF8&psc=1&smid=ATVPDKIKX0DER

  6. If you like to learn from books, I am a big fan of the format of Murach Books https://www.murach.com/
u/MSFTEngineer · 8 pointsr/cscareerquestions

I'll address your #1 below, but I want to focus on #2 for a second.

The feedback you've gotten regarding your degree choice is correct -- all of it, even though it may seem contradictory. You'll have a tough time finding a job in Art - and artists probably won't appreciate a degree in CS very much. The reverse couldn't be further from the truth.

It is a very rare individual that has the logical and mathematical nature to code efficiently and with broad scope but then uses their artistic creativity to inspire cleverness. Code, or more generally put a system, is a piece of art just like any other. A wide array of pieces which need to cleverly and harmoniously co-exist. The creativity of an artist is essential in recognizing the potential of an application.

I want you to look at this role. Read the job description, and picture it applying to a product where you design the User Interface and the User Experience. Understand that you will work with graphics artists, but it's your vision that determines what the user experiences.

If that feels right, chase it.

----

As for your #1 question, another very good one.

When I'm interviewing SDEs, I want to see mastery of concepts and, to an extent, cleverness of a solution. There are a few things, though, which make me almost immediately discount a candidate:

Starting before you have all the information. Make sure that you have a very clear vision of what the problems is before you begin. Understand that any assumptions you make must be checked first. For example, if I say take a pointer to the head of a linked list and then do X on it, and you assume that the pointer will never be null, you will fail my test. Either code for the case where the ptr is null, or ask the interview "Is it a fair assumption that the pointer will never be null?"

Being satisfied with a naive solution. When solving a problem, it's perfectly fine to give the naive solution -- but don't stop there. Once done, talk with the interviewer. Say things like "Now this is the naive solution, because it finishes in O(n^2) time. We can make this more efficient by doing 'X'" and then press forward.

Internalizing your thoughts. This is weird to do for candidates, but it's critical for a team environment. When you're solving problems, think out loud. I'm not asking you to solve these problems because I'm bored and need a show, I want to know how you think.

There's so many of these I could write a book (and others have). I highly recommend reading Programming Interviews Exposed. It's an awesome resource with spot on practice problems.

u/NSAownsRSA · 8 pointsr/cscareerquestions

I compiled lists of interview questions from Glassdoor before my interviews and used Cracking the Coding Interview.

The interviews questions that I received were fairly varied. From what I can remember:

  • String Manipulation
  • Trees
  • Array Manipulation (Find duplicates, partial sort etc.)
  • Sorting (Specifically radix sort and quicksort)
  • Dynamic Programming (Pot of gold)
  • Concurrency

    There are a lot more of these topics covered in Cracking the Coding interview.

    My previous internships were for big non-tech companies. They weren't particularly interesting or impactful, but they were a line in my resume. Keep in mind that your resume is just to get an interview. Once you're in front of engineers, what you say and write in the interview are most important.
u/c0Re69 · 8 pointsr/cscareerquestions

I can name you a book, Cracking the Coding Interview.

u/WHATS_A_ME-ME · 7 pointsr/cscareerquestions

Review your basic algorithms and data structures. Sorting, graph traversal, linked lists, structs, arrays, and multi-dimensional arrays.

Know about memory management, know about orders of magnitude in runtime, know about pointers, know about debugging and what to test.

You almost certainly won't be asked one of those wacky brainteasers you hear so much about -- we've found over time they do little else but tell us how good you are at brainteasers.

If you can do every problem in this book then you'll be more than prepared.

Also, give a quick read of our general interview tips.

General advice:

Pay close attention to providing thoughtful, reasoned approaches. Don't get so tied up in providing a clever solution that you forget the simple answer. Points are definitely awarded for really clever or innovative solutions, but that isn't the only way to get through.

Additionally, RELAX! This is definitely easier said than done, I realize, but understand that most interviewers really do want you to succeed. They aren't there to scare or intimidate you, and interviewing isn't even their day job! They're engineers who once sat exactly where you were, answering the same things they're now asking you.

Try and think of your conversation with your interviewer as being a chat with a really good friend of yours that you haven't seen in a really long time. You used to be best buddies, but moved away and you haven't seen them since. You know you've both changed in all that time, so you're being a little restrained, but there's still a foundation of mutual trust and respect -- one that puts you at ease.

Lastly, verbalize your answers. We aren't asking you to write an algorithm to sort a linked list because we're curious how it's done -- we're asking you because we want to know how you think. Verbalize your thought process. Verify all your assumptions. And, if you get stuck, don't be afraid of stating your thought process to your interviewer and asking for some feedback on where to take the solution (this is a heavily team-oriented company, after all).

Hope this helps! Best of luck!

Source: I do interviews at Microsoft, both general technical interviews as well as PM interviews.

u/DionysiusExiguus · 7 pointsr/GradSchool

Karen Kelsky's, The Professor is in is quite good once you realize you have to read past the rhetoric of "the sky is falling!!!" Her tone can be a little stressful if you're already feeling under pressure, but the advice she gives is really solid.

u/gameguy43 · 7 pointsr/cscareerquestions

It's never "too late" for smaller startups. Keep applying! Even if you get the offer halfway through the summer, it might still be worth it for the company to take you on for the rest of the summer.


Find smaller companies on http://angel.co and https://www.whitetruffle.com/.


What specifically is going wrong with your applications so far? You say you've gotten some phone screens--are you generally having trouble getting to the phone screen, or generally having trouble getting past the phone screen?


If you're having trouble getting past phone screens, there are a bunch of resources for brushing getting better at technical interviews:

u/pokoleo · 7 pointsr/uwaterloo

Going through jobmine, there are exactly two parts to getting a job:

  • Get the interview
  • Get the offer

    You get the interview by having a good resume, and knowing how to talk to recruiters.

    You get the offer if you appear technical. Socially fitting together with your interviewer is invaluable. You want to feel like a coworker.
u/FiliKlepto · 7 pointsr/ProductManagement

If you haven’t been recommended it yet, you might want to check out Cracking The PM Interview

u/___________nope · 7 pointsr/personalfinance

Thanks! I am looking at software engineering positions right now, and I agree that the market is very hot right now. The last time I looked for a job in earnest was around 2011, and it was depressingly hard to get a foot in the door.

Since others in the field might read this, I recommend getting "Cracking the Coding Interview" to prepare. I felt much more confident after reading this book. The author does an excellent job of explaining what interviewers are looking for and there's a lot of material to use for practice.

u/TheStudyOf_Wumbo · 7 pointsr/UofT

You're GPA is great so you don't need to worry about that, IMO I'd list it on your resume.

I would recommend the following:

  1. Do this book, attempt all the chapters if you can (you might be able to leave out threading, but I still recommend it): https://www.amazon.ca/Cracking-Coding-Interview-Programming-Questions/dp/0984782850 (Note: there is a better book but this is a good starting book)

    While concurrently (har har) reading the book, any data structures you don't know, learn. Program them and test that they work.

    Further, check out CSC263 materials and see if you can implement the data structures. You should also at the end of CtCI be able to attempt some of the assignments from CSC263 and complete them.

    Also try coding problems on hackerrank or leetcode or w/e the sites are called -- note they can be demoralizing on hard but it's worth it and you learn a lot

  2. Now that it's the summer time, try to create some bigger projects. If you're going to make a smaller project then make sure you learn something inside and out... for example if you're learning Java and do something with reflection, go absolutely ham on learning how reflection works

    Pick a language and learn it well, again if you do Java, then know how garbage collection works and other core language features (ex: If I ask you what a GC root is, do you know? [ask yourself this in 4 months] Can you compile from the command line? Do you know what Maven is and how to use it? Can you use lambdas and the new stream API? What is type erasure? etc)

    C++ is great at removing your hair, but you'll learn a lot... and if you ever have to work on a C++ project you won't want to kill yourself when you accidentally do object slicing or something funny like this.

  3. Learn SQL/databases/one ORM framework, and interface it with your language of choice (will make CSC343 much easier for you)

  4. Try to learn some web stuff so if you come across it you won't be confused by what to do. Making your own personal site from a template is a good start

  5. Learn either Git or Mercurial well, and good practices (ex: always branch and pull to the master), which will dramatically save you headaches when you get hired. You do not want to be 'that guy' who fucks up the repo...

  6. Learn C or assembly if you can, this will give you the bigger picture and make CSC209/CSC258 also A marks for you (I recommend NASM but MIPS or ARM can work great too)

  7. Get someone to proof read your resume, I don't know anyone who had a proper first resume.

  8. IF YOU CAN... try to contribute to a massive project. Committing even a one line bug fix to a massive project can be a significant amount of work and looks really good on a resume. In fact, I've been told by multiple employers that seeing someone do work on a massive code base that isn't theirs is great brownie points for getting hired since that is what you'll be doing.

    Obviously put your work on github or somewhere, though I think you know that this is implied

    As you can see, attempting the above will directly benefit the following courses:

  • CSC207 (if you do Java)
  • CSC209 (if you do C, or C++)
  • CSC258 (if you do any assembly)
  • CSC236/240/263/265/373 (from CtCI, general experience, etc)
  • CSC301/302 (if you do contributions to a large database)
  • CSC309 (if you do any web stuff)
  • CSC343 (databases)
  • CSC369 (threading, other misc stuff)

    Sounds good doesn't it? Though this is probably only possible if you are doing literally nothing over the summer ;)
u/Tangurena · 7 pointsr/AskReddit

There are a number of books that I think you ought to read to get a better understanding of office politics and how to cope/deal with them. All offices have politicking going on, and any company that claims otherwise is lying to you. Any time more than 2 people get together, there will be some sort of jostling for power and attention. When that happens at work, we call it "office politics".

Your library may have these, and if you get them, read them at home. Don't ever bring them into the office.

Corporate Confidential. HR is your enemy, not your friend. Gives a number of examples of what will destroy your career with companies, many of which you (and I) probably do without realizing the consequences.

The Passionate Programmer. The first edition of this book was called "my job went to India". While aimed at programmers, the points are to keep your mind and skills up to date as technology and business move too rapidly to let things get rusty.

To Be or Not to Be Intimidated.
Looking out for number one.
Million Dollar Habits. I feel that these 3 by Robert Ringer are very important. If you think his first book was about to intimidate others, you only read the press coverage. If you think his books are about real estate, then you only skimmed them. There are a lot of people in the world who will try to intimidate you into giving up what is yours, and he shows you what some of them are like, and what countermeasures you can use.

The Art of Deception. Bad title - it is about arguments, how to make them, win them and tell if you're hearing a bad one. Used to be called "rhetoric" when Plato and Aristotle taught the subject.

Snakes in Suits. There are some evil people out there. You'll work for some of them. You will be stabbed in the back by some of them.

Bullies, Tyrants, and Impossible People. One book on office politics and dealing with some of the worse sort.

The Gentle Art of Verbal Self-Defense at Work. Some folks are very good with verbal manipulation, this book and the others in the series, cover how to deal with such people.

Winning with People. Most of the books this author writes are about managers and leadership. This book is more about people skills. It will be focused more at managers, but I think it is a good one.

The 48 Laws of Power. They have it. You want some. Light read with anecdotes. I like his other books as well.

Games At Work. Office politics.

It's All Politics. Yes it is.

Moral Politics. Liberals and conservatives, why do they think that way? You'll work with some of the opposite persuasion some day, so understanding where they come from is a reasonable idea. Most books on this subject are insulting and degrading, but I think this one is pretty much judgement-free.

> When I walk by him going to the bathroom, he will stop talking until I walk by.

Do the same. When they come to your desk, always brush them aside with "I'm sorry, I can't talk now, I'm busy working".

u/9throwaway2 · 7 pointsr/television

I would say no. I would recommend this book instead: "Doing Good Better" https://www.amazon.com/Doing-Good-Better-Effective-Altruism/dp/1592409660/

Easier read and meant for a general audience. What we owe each other is pretty dense.

u/ArmenShimoon · 7 pointsr/csharp

They seem a like reasonable starting point I think. Repetition is the mother of mastery, the more books the better (in addition to applying what is learned).

Since Mosh is calling out learning fundamentals as important to becoming a good C# developers, I would personally also recommend some general (non C# specific books) too for who are starting out in software development:

  1. Design Patterns (Amazon) - also known as the "Gang of Four" Design Patterns, it was originally published in 1994 and is still relevant today. When people talk about design patterns, they're referring to the book more often then not.

  2. Soft Skills (Amazon) - Not a book on programming actually... it's a software developers life manual. The reason I like this book is it covers the other parts of the life of a developer that I haven't seen covered anywhere else. Everything from learning strategies, time management, career advice, and even some health and fitness. It was an enjoyable read and I think other developers would enjoy it too.

  3. The Passionate Programmer (Amazon) It's been a while since I've read this one, but I remember it giving decent advice for building a career in software development. Not to be confused with The Pragmatic Programmer (Amazon) which should be read at some point too.

    There's a ton more, but those are a few that stood out to me. Essentially the more the merrier in my opinion - books, courses, videos, tutorials, and so on. The books I'm recommending here focus on adopting the developer mindset and being successful at it. That's part of the puzzle.

    The other part is understanding the technical details including the programming language and frameworks you intend to use.

    And finally, for learning about C#, I do highly recommend Mosh's videos/courses (some are free on YouTube, others available on Udemy). He's got a unique ability to explain things clearly and simply in a way that beginners can pick up quickly.

    What I'd do is check out his free content first, and if you agree his style is ideal for learning, an investment in one of his courses is well worth it since he'll cover a lot more breadth and depth on each of the topics and they're organized into a super consumable package rather than scouring the internet for various topics.
u/penguinofevil · 7 pointsr/clinicalpsych

One consideration is cost. Funding for PsyD students is much more limited than for PhD programs. There are also many counseling focused PhD programs, where the focus is more on counseling then research. If you're interested in applying for a psychology doctorate, I recommend this book hands down as the best guide for getting in to the program. This is a book you want to look at long before you begin the application process.
Alternatively, you could apply to masters level clinical and counseling programs which would be less intense, less schooling, less expensive, but would not be that different in that you'd be doing counseling work. Other graduate programs to consider are Social Work or Marriage and Family Therapy... each is unique, so one may appeal to you more than the other.

u/CNoTe820 · 7 pointsr/philosophy

This is the book:

https://www.amazon.com/How-Fail-Almost-Everything-Still/dp/1491518855

Basically his main philosophy is that you shouldn’t have goals, you should just have systems that move you in the right direction. For example, you don’t set a goal to “lose 20 pounds” because every day you haven’t met that goal is demoralizing, plus, when you get there, you probably just have to set another goal that will take a while to reach.

Instead, you can create an eating system like “Cut out carbs and soda, and otherwise eat as much vegetables, fruits, nuts, meat, cheese, etc” without regard for how often you’re eating or how many calories you’re consuming, because eventually your body will adjust and you’ll naturally eat less food and start losing weight. Part of that system sound also be something simple like “get out and walk 30 minutes every day” or whatever kind of reasonable exercise you can add into your schedule without being overwhelming.

Anyway he applies this “goals not systems” approach to all aspects of his life. You wouldn’t say “my goal is to get a girlfriend” you would say “my system is to go on two dates a week” and see what happens from there, then adjust your systems as life changes.

I recently read “Deep Work” and it has a similar approach.

u/lordpepe3710 · 6 pointsr/indonesia

Mengetahui lebih dari satu bahasa pemrograman adalah persyaratan wajib jika ingin menjadi programmer professional. Pelajari low-level language seperti C dan C++ karena akan sangat membantu memahami high-level language yang lebih banyak dipakai di dunia kerja. Satu saran berguna: pelajari terlebih dahulu teknologi dasar yang membangun sebuah framework sebelum mempelajari frameworknya. Misalnya jangan langsung belajar Angular, pelajari dasar-dasar JavaScript terlebih dahulu. Jangan langsung belajar Laravel, pelajari dasar-dasar PHP terlebih dahulu.

Kurikulum pemrograman dibuat sejatinya untuk mencetak lulusan yang mampu menghasilkan good software. But contrary to what you'll face in real world. Di dunia kerja kamu akan menyadari bahwa bisnis lebih menginginkan "produk" ketimbang mengaplikasikan best software practices. Artinya kamu harus punya gambaran perusahaan seperti apa yang kamu impikan sebagai tempat bekerja nantinya.

Inti dari dunia pengembangan perangkat lunak adalah algoritma dan data. Di dunia kerja kamu akan dihadapkan dengan banyak sekali data dan bagaimana mengelola data tersebut. Perkuat pengetahuan fundamental, yaitu algoritma dan struktur data.

Pemrograman itu sulit. Sulit. Jangan berharap untuk menjadi expert dalam hitungan minggu atau bulan. Tapi tahunan.

Kalau sudah lulus kamu bisa baca buku ini untuk menghadapi interview.

Edit. Tambahan. Ingat bahwa programming languages, library, framework etc, is just a tool. Merely a tool. Modal kamu yang paling berharga adalah kemampuan merancang arsitektur sebuah sistem.

u/the_omega99 · 6 pointsr/learnprogramming

Cracking the Code Interview is the most well known book for interview programming questions. However, it's focused on harder interview questions than "reverse a char[]", which is little more than a basic "can you program" check (the interview questions that CTCI covers are skill checks).

For solving something like "reverse a char[]", you should be able to do this after a first year programming class. It requires basic array and loop knowledge; nothing more. For a resource to cover that, you could use a MOOC like this one. It'll cover the basics enough to answer that question and similar ones, but you'd still need a lot more if you'd want to reach the point of being employable (merely being able to reverse a char[] is not enough to get a job -- it's just a way for the interviewer to quickly figure out if they're wasting their time).

u/firestorm713 · 6 pointsr/gameDevClassifieds

TL/DR: Know what you want to be paid, be specific, show off your work, your resume isn't graded, and interview the company as much as they interview you.

Got my first industry programming job by posting on here about a year ago. I'd just graduated uni and was looking for a serious gig.

It took three or four posts over two months before I finally was starting to get decent offers. The ads that failed were generic, didn't market my skills well, and weren't specific enough as to what I actually needed, thus I got lots of Rev-Share-only offers, lots of $400 a week offers, and lots of "exposure" offers. There were a few offers for positions I was in no way qualified for, either.

For reference, this and this were my unsuccessful ads, this was my successful one.

I'm actually just now starting to look for a new job (my contract is up), and revamp my portfolio site, and my general advice is:

  1. Know your worth up front. Figure out what your time is worth to you, and then ask for a little more than that (because you'll probably settle for less than your up-front offer). Make it clear what you won't accept, too. On my ad one of the things my boss said had caught his eye was that I was extremely explicit that I was looking for a job, not a quick gig. I have loans to pay off, a family to support, and rent to pay. Rev-share-only was not okay, nor were tiny $400 a month contracts. He could tell I was more than just a student looking for a meal ticket, but that I was ready to start my career.
  2. Market a particular specialty, not general expertise. A character artist or engine programmer will get way more targeted offers than someone who markets themselves as a generalist.
  3. Words mean nothing. Visuals are everything (or sounds if you're an audio/music/sound person). Have demos on your website (get a website for free on github.io if nothing else) that people can see, touch, play with. This is whether you're a programmer, artist, designer, or sound person. If you can point to a project, talk about what you worked on, and point to specific things you did in an interview, all the better. If you're a programmer, make public projects on GitHub.
  4. Don't sweat your resume. More specifically, don't feel like you're a slave to one format or another. It's not a paper that's going to be graded by a teacher. It might spend 5 minutes in front of a recruiter or potential employer, so you want to get the most important information up front. If you're not super experienced, functional resumes are a great asset, because you can list unpaid projects (like ones you did at school, or just for fun), and forego unhelpful work experience like that retail job you had for five years that has no bearing on your programming/artistic/musical/design ability.
  5. Interview the Interviewer. They need to be happy with you, yes, but you need to be happy with them. Ask lots of questions. Show interest. Listen. Find out their scope, and whether it's the right amount of work for you. Make sure that your expectations and theirs are crystal clear.
  6. Finally, one third of Kickstarter projects succeed. Let that sink in. While your chances of successfully Kickstarting a game are nonzero, and there are tons of things you can do to affect the outcome of your Kickstarter to give yourself a better chance of succeeding, it should be clear that you should not accept "payment after Kickstarter" as a possibility, unless you're confident that you can get paid (or okay with not being paid).

    Bonus: If you're a programmer, get "Cracking the Coding Interview". It is amazing and will help you figure out what potential employers are looking for.

    edit: ._. oh. This is a bit old. Oh well. Hopefully someone'll see it and get something from it.
u/brobi-wan-kendoebi · 6 pointsr/cscareerquestions

Never ever ever ever ever ever ever EVER ever ever EVER tell a company "I'm not suited for the job". Have some balls! Sure, you messed up, but hold your head high. Everyone messes up in their life at interviews; I know I have many times. Confidence can go a long way in promoting your personal image.

FizzBuzz is probably the most simple, commonly used interview question out there to see if a programmer can actually program. It doesn't get much simpler than that. I hate to break it to you, but Modulus is one of the most basic foundation concepts you need to know, and it's definitely taught in any entry level OOP book or Uni program. I dare you to show me a "Learn programming in Java/C++/Any other OO Language" book that doesn't cover it in the first few chapters.

You are over-thinking the solution here: it's meant to show how well a candidate can easily write clean, short code. There's no reason for you to abstract the functionality of finding whether a number is evenly divisible into a method - that's over complication in design, and it's a red flag for employers. I think you may have believed that isolating specific mathematic processes into methods seemed like a good idea to show off that you know object oriented principles. You're on the right track. However, if the process you're writing can be completed in a single line of code, let alone under 10 characters, you're just adding more dependencies and complication to a simple block of code. I would suggest this as a more clean solution to fizzbuzz (in Java):

for (int x=0; x<=100; x++) {
if(x%3==0 && x%5==0)
System.out.println("FizzBuzz");
else if(x%3==0)
System.out.println("Fizz");
else if(x%5==0)
System.out.println("Buzz");
else
System.out.println(x);
}

I personally struggled with a decent amount of interviews until I started to actually prepare for the interview. I recommend finding time to work through these two books; they'll help prepare you for what kind of questions to expect.

http://www.amazon.com/Programming-Interviews-Exposed-Secrets-Landing/dp/1118261364/ref=sr_1_1?s=books&ie=UTF8&qid=1377704276&sr=1-1&keywords=programming+interviews+exposed

http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X/ref=sr_1_1?s=books&ie=UTF8&qid=1377704294&sr=1-1&keywords=cracking+the+coding+interview

And most important of all: NEVER get down on yourself! Every tough problem or terrible interview you have is just a learning experience. Never tell yourself you aren't good enough, or just outright give up. You aren't allowed. Stick with it, and prepare months in advance, like homework. You don't have to be that person dedicating every waking moment of their life to programming, but if you're serious about keeping your interview skills sharp, you need to dedicate some time to learning the questions. Good luck!

EDIT: Grammar, etc.

u/ifloopthepig · 6 pointsr/cscareerquestions

Search algorithms and data structures will be pretty important for the interview, but if you're a bit rusty, there's probably still time to brush up on stuff before the interview. Books like Cracking the Coding Interview or Programming Interviews Exposed really help.

One thing to be careful about on the interview though is to not get too hung up on finding the best possible answer to a question. Yes, coming up with an efficient solution is good (and if you give a less than optimal solution, your interviewer will probably ask you to improve it or add more constraints), but if you cannot come up with any solution, even a naive one, and aren't able to code it (or run out of time because you spent too long trying to find an efficient solution), you probably won't make it to the next round.

In general though, you shouldn't be asked too many questions that require memorization as long as you know the basics (and you should be able to discuss space and time complexity for any solutions you provide). If you have any more questions though, feel free to send me a PM (I work at Amazon).

u/averageUsername123 · 6 pointsr/uwaterloo

Looks like you're getting the interviews, but not getting the job. Try going to the Tatham Centre and brushing up on your interview skills. Read up on Cracking the Coding Interview. Keep trying!

u/theootz · 6 pointsr/cscareerquestions

TL;DR Improve yourself, invest in your future, don't worry about the mistakes...read the books listed at bottom, and practice!

Few months ago I royally fucked up an interview at Microsoft. A really simple question. But I had no experience doing coding on paper instead of a computer.

I spent a lot of time studying various books and paper coding to make sure it wouldn't happen again.

I then had an interview for another (in my mind at the time) dream job. I did fine for all the phone interviews and they flew me over to the west coast for an in person interview for the day. I did well for the first bit until they started pulling out dynamic programming and integer programming questions on me and expecting me. Once again something I didn't prepare for, and f'd up. Didn't get this job either. For the longest time I was really hard on myself at fucking up on both these interviews one after another. Especially this second one since a lot more was riding on it than just the job (another story).

But then I decided I didn't want to have this sort of experience again and expected better of myself. I made myself further improve and brush up on all those concepts as well. Did a few mock interviews with friends, spent some time working on interview type questions on both the computer and on paper. A month or two later I started interviewing again. By this point I was an interviewing machine - and I'm now able to do just about anything thrown at me. I've had my choice of employers and until just recently, was in the situation where I had so many offers I didn't know which one I wanted most. I'll be heading to silicon valley soon at one of the top tech companies in the world with a fantastic offer considering I just graduated.

The point is - learn from the mistakes and improve yourself. I realize you don't want to be that guy spending heaps of time coding outside of work or whatever... but this is an investment in yourself and your career. Do it once, and then just brush up on your skills from time to time. Get into the interviewing mindset and just rock them so you can have your choice of job - and then you can go about your thing once you have the job locked. The up front investment will be worth it!

Things that helped me:

  • www.hackerrank.com - practiced a lot of questions on here
  • www.careercup.com - another great site for questions
  • Cracking the Coding Interview More help on questions, but also some great insights into the interview process for the larger tech companies and many hints and tips on how to go about solving the more complex problems
  • Code Complete A great book for helping you to refresh or learn about software design
  • Eternally Confuzzled Great resource to learn how to think about common data structures and algorithms

    Having trouble with Algorithm design/analysis? These are some of the go-to books for that:

  • The Algorithm Design Manual Probably the defacto for learning about algorithm design and analysis
  • Introduction to Algorithms A great book with many different algorithms and data structures to learn about
  • Algorithm Design A great book if you want to dive deeper into more complex subjects like graph theory, dynamic programming, search algorithms, etc.. etc..
u/abhorrent_hooker · 6 pointsr/brasil

Talvez você precise de mais experiencia pra conseguir algo assim, mas ganhar em euros ou dólares é melhor que ganhar em reais.

  1. Treine seu inglês
  2. Pratique os exercícios desse livro
  3. Tente o processo da Toptal. Se não passar de primeira, pode tentar de novo mais pra frente

    Eu trabalho remoto direto pra uma empresa de fora, mas tenho vários amigos que trabalham pela toptal. Pelo que sei, ganham no começo 35 trumps por hora (os projetos podem ter horas variáveis), mas é um pé na porta pra conseguir algo melhor depois.

    Sobre areas, o que vejo mais oportunidade é front-end, principalmente com react, mas isso varia muito pra cada região.
u/TheMiamiWhale · 6 pointsr/battlestations

If you are a CS major I'd go with the $15 package just so you can get the two books on security. In terms of helping your job prospects, I'd think about the following:

  • Code as much as possible (be very comfortable with at least one language)
  • Practice algorithms
  • Have a project or two that isn't trivial

    Assuming you already know how to program in a handful of languages, you might find the following useful:

  • Fluent Python

  • Coding the Interview

    Of course depending on what your interested in (e.g., mobile, web, systems, etc.) there are additional great resources but these will at least get you moving in the right direction. The biggest thing is just practice writing code as much as possible.
u/pailos · 6 pointsr/AskHistorians

I'm on the job market now. I will recommend a book that will answer your question. This book will give you an accurate state of the academic job market as it exists today. This book is dead on accurate.

https://www.amazon.com/Professor-Essential-Guide-Turning-Ph-D/dp/0553419420

(I have no affiliation with the author)

u/PROPHYLACTIC_APPLE · 6 pointsr/AskAcademia

Make an appointment with your university's career guidance councilor. They're paid to think about this for you and should be able to help you establish a plan.

The Professor is in is also a pretty decent book, although it's primarily geared toward securing an academic position: https://www.amazon.com/Professor-Essential-Guide-Turning-Ph-D/dp/0553419420

Network with folks outside academia and try and do a research project with broader topical and methodological relevance.

Once you identify a career you'd like work to develop strong transferrable skills for that area.

u/Lolor-arros · 6 pointsr/ehlersdanlos

Rest is the #1 thing that has helped me. Rest, and restful activities. I cook 1-3 meals a day and that causes most of my pain. If I can avoid it, I do, and it helps.

If I can spend most of my time reading, or watching movies or something, my pain gradually disappears.

I'm at my worst when I have to do things all day. Walking around causes knee and foot pain. Cooking and cleaning cause arm and hand pain. When I had to write in school, my hands would ache for days.

If she does a lot of housework, taking up some of that (or hiring a maid or something if you have $$$) would be a great gift. The only real way to avoid injury is to not get hurt in the first place, and if her arms and hands are hurting the most, it's probably caused directly by what she does from day to day.

-

If her fingers get bent back or dislocated often, silver ring splints are very highly regarded. They prevent your fingers from getting bent back at all - hyperextension can cause a lot of damage over time.

You do have to get measured by a doctor, so that appointment would be the gift. It would probably be better not as a surprise, unless you know her fingers flexing are a big problem. They can sometimes be covered by insurance as they are custom orthotics, but you usually have to fight for it. I'm sure their "Contact Us" folks can help her get approved if you call, they only get paid if she does ;)

If her fingers aren't so much of a problem, an appointment with a really good orthopedist who's familiar with EDS would net her some awesome wrist, elbow, and/or shoulder braces. Cheap braces suck, they don't usually help. Good ones can be very expensive, but they really help. Insurance can help again here, but this also usually takes special approval.

-

Because she's new to the diagnosis, books about EDS could be a good small gift. Books like this one have taught me a lot about managing symptoms and getting through life comfortably.

-

And this probably wouldn't be appropriate, haha - but medical marijuana is right behind rest in terms of helping me get through the day every day. Constant pain has some really negative effects on your brain.

I used to take anti-inflammatories daily, and opioids when it was really bad, but both of those had terrible side effects.

Get her an ounce, dawg, #420blazeit (/s)

u/pleaseprovideadvice · 6 pointsr/vancouver

I can only recommend bootcamps for 2 types of people:

  • Someone with a CS degree 10 years ago and needs to update skills quickly, changing cities, or going back into tech a career
  • Someone who cannot commit to a 2-4 year degree program due to family, financial or other commitments

    But for the rest, I think you're better served biting the bullet and going back to school for an actual diploma or degree program.

    For what a bootcamp provides, I think it's really expensive ($8600-9000 over 2-3 months). Ironically, the appeal of a bootcamp is also the main flaw of a bootcamp: time. For people who have no tech background (which is the main target demographic of bootcamps), you're essentially cramming all these tech concepts, languages and frameworks in 2-3 months. Are you going to retain all of this information 6 months later?

    When you graduate from a bootcamp, you're competing with CS graduates, diploma students who had years to hone their skills. Give yourself an honest assessment and ask how you'll do against them?

    I highly recommend going through a book called: Cracking the Coding Interview

    These are the type of questions that the top companies will ask. Good luck with your pursuit!

u/iimpact · 6 pointsr/cscareerquestions

I would recommend brushing over some basic CS concepts first. Since you've been out of school for a few years now, it might be a good time to start working on little side projects and/or programming exercises if software engineering is what you want to get into.

You can also check out this book, which will help you prepare for a programming/tech interview.

What type of job are you looking to get? Are you interested in software support? development? IT? Your preparation will depend on what route you want to go down.

u/WaxenDeMario · 6 pointsr/cscareerquestions

Yes! Also, quite honestly I don't know that many CS majors who took linear algebra at my school for whatever reason.

Where do you get started?

  • If you're the type of person who likes an organized class to learn concepts, consider checking out coursera or other similar websites which offer free online learning courses! Check out their CS offerings and start from the intro.

  • I must be known for spamming this SR with this, but check out CLRS, it pretty much contains most of the "CS math" you need to know for algorithms. As well as pretty much all you need to know about Algorithms and Data Structures for any basic job.

  • REALLY make sure you understand your Algorithms and Data Structures, nearly every interview for a basic position centers around these topics. As well as some others, depending on the company: Bit manipulation, multi-threading, TCP/IP, etc.

  • You want to learn some mainstream language as a lot of other people mentioned: C++, Java, C#, Python are a few that come to mind (though there are more like Ruby!). Side Note: Some people have differing opinions on whether C++ is good to learn as a first language. I don't know C# (but from its apparent similarity to Java) I would say C++ is probably the most difficult language to learn of the four I listed, but I feel that it also provides the most flexibility, because once you understand C++ it's easier to trainsition from C++ to Java, than say Java to C++ (similar for the other languages).

  • Practice! Start working on some Project Euler problems, or other practice problems. Bonus: Someone in another thread mentioned that they made a blog post for each problem they solved and explained every one of their design decisions. This seemed like a bit over the top, but it really is a good practice for an interview and a job! You can even put a link to this on your resume to share.

  • Find an Open Source to contribute to, come up with your own projects and post them on your github! This can show off your skills to a potential employer!

    Bonus for programming:

  • When coding alone it's easy to get lost and start "hashing" together code. When you get to big projects, you'll find that this causes a lot of problems (and when working with other people it can cause even more). Some things to keep in mind when coding:

  • Make sure your code is maintainable.

  • Make sure your code is scalable.

  • Test, test, test!

    Maintainable kinda means that your code is easy to test, easy to comprehend (by others) and easy to modify. Read up on different design patterns to learn more about this.

    Scalable is something you'll learn more about later, but basically it's kind of thinking about whether your code will be "good" enough to handle a lot of users (how fast is it how much memory will it take up)

    Testing is very important when coding. You want to try to write small pieces of code then test it (i.e.: make sure it works).

    All three of these things show up a lot in interviews, and if you can relate why you made your code the way you did to one of these three points (or something else) you should be pretty well off :D

    How do I land an interview?

  • In your resume make sure to list any CS projects you want to mention, a link to your website (if you have one) or to other work. As well as Operating Systems you're familiar with (Linux is a big plus, but not absolutely necessary), IDE's you're familiar with (things like Eclipse, Visual Studios), and Languages you know. If you can, make sure to relate those three bullets to your project and work somehow to reiterate your experience with each language.

  • A lot of recruiting is done on-campus, but there are other options, like applying online or even better...

  • Network your way in. This gets your resume through the massive HR screen

  • Edit, edit, edit (ask friends who are in the industry).

    How do I study for an Interview?

    Typcially, an interview will have you and the interviewer. The interviewer will first ask questions about you, what you're majoring in. And then maybe ask questions about your previous projects, and then he'll throw you a programming problem. Sometimes these can just be questions like "Which is faster: quicksort or mergsort?" or something like that, but other times they'll have you code something. If the interview is online, this will either mean you'll need to tell them the code you're writing or you'll code online on some collabarative envirionment (i.e.: you type the code online). If it's in-person they may have you write on a whiteboard. There are other formats of interviews as well, so make sure to research. Typically, for most larger companies, they won't care what language you code in (hopefully though it's mainstream!), but if you don't code in a language which they use, they may test you later for proficiency in one of their languages.

  • As I mentioned before, Algorithms and Data Structures are usually go-to's for interviews, but other topics may come up so check out the req's for each job specifically.

  • It may have been a while at this point since you studied your material, to brush up on interview questions, Cracking the Code Interview is a great book to brush up on your topics for an interview, it also has some resume advice, etc. if you choose to follow it.

  • Be sure to practice talking out loud while you're coding, as this can help you during interviews. If you're stuck but your thought process is good an interviewer can help push you in the right direction.

  • If you struggle with interviews, try having a friend who you know has experience and having him ask questions, better yet if you know a friend at the company, ask him to mock interview you.

  • If you have time ALWAYS make sure you run test cases through your code mentally, and mention the test you're running and what it's supposed to catch (expected behavior) to your interviewer! If you have time and choose to ignore these, it can give the interviewer a wrong impression :\ (it also makes you look really good if you come up with all the boundary cases)

    Sorry, not sure if this helps or not!
    Good luck!
u/shhyfz · 6 pointsr/uwaterloo

Read this
It will help you pass the interview process.

But before that you need to have a strong resume to attract recruiters.
Build a personal project. Participate in algorithm contests(acm).

u/AmalgamDragon · 6 pointsr/programming

> short of a very detailed rehearsal of many different problems

Exactly.

u/mudkipzftw · 6 pointsr/uwaterloo

I've had about 5 interviews with companies in the Bay Area, and in my experience all of them follow the same general sequence:

  1. Resume screening. If they like you they'll ask for a phone or skype call
  2. Three technical phone screens. Usually last an hour each, and usually 100% technical (very rarely they ask about your resume). Each interview is done by a different software engineer. After the third screening they talk to each other and discuss or vote on whether you're any good. This is the hardest part and most people don't make it past this stage.
  3. Discussion with a high ranking engineer (e.g CTO). This is more of a get-to-know-you type thing and they usually go more into your resume here.
  4. (Sometimes) Discussion with a non-engineer manager
  5. If you make it here, buy a bigger wallet


    For the specific type of questions they ask, I recommend this book and /r/cscareerquestions


    edit: and the technical screenings are always live coding sessions using a shared document. That shit is nerve racking and I recommending practising before the interview.
u/Reddit_pls_stahp · 6 pointsr/vegan

> Consider ethical consumption, like switching to fair-trade coffee, or reducing how much meat you buy. Suppose someone stops buying chicken breasts, instead choosing vegetarian options, in order to reduce the amount of animal suffering on factory farms. Does that person make a difference? You might think not. If one person decides against buying chicken breast one day but the rest of the meat eaters on the planet continue to buy chicken, how could that possibly affect how many chickens are killed for human consumptions? When a supermarket decides how much chicken to buy, they don't care that one fewer breast was purchased on a given day. However, if thousands or millions of people stopped buying chicken breasts, the number of chickens raised for food would decrease-- supply would fall to meet demand. But then we're left with a paradox: individuals can't make a difference, but millions of individuals do. But the actions of millions of people are just the sum of the actions of many individual people. Moreover, an iron law of economics is that, in a well-functioning market, if demand for a product decreases, the quantity of the product that's supplied decreases. How, then, can we reconcile these thoughts?

> The answer lies with expected value. If you decline to buy some chicken breast, then most of the time you'll make no difference: the supermarket will buy the same amount of chicken in the future. Sometimes, however, you will make a difference. Occasionally, the manager of the store will assess the number of chicken breasts bought by consumers and decide to decrease their intake of stock, even thought they wouldn't have done so had the number of chicken breasts bought been one higher. (Perhaps they follow a rule like: "If fewer than five thousand chicken breasts were bought this month, decrease stock intake.") And when that manager does decide to decrease their stock intake, they will decrease stock by a large amount. Perhaps your decision against purchasing chicken breast will have an effort on the supermarket only one in a thousand times, but in that one time, the store manager will decide to purchase approximately one thousand fewer chicken breasts.

> This isn't just a theoretical argument. Economists have studied this issue and worked out how, on average, a consumer affects the number of animal products supplied by declining to buy that product. They estimate that, on average, if you give up one egg, total production ultimately falls by 0.91 eggs; if you give up one gallon of milk, total production falls by 0.56 gallons. Other products are somewhere in between: economists estimate that if you give up one pound of beef, beef production falls by 0.68 pounds; if you give up one pound of pork, production ultimately falls by 0.74 pounds; if you give up one pound of chicken, production ultimately falls by 0.76 pounds."

From Will MacAskill's Doing Good Better

u/douglasg14b · 5 pointsr/learnprogramming

Just an FYI, it is cheaper on amazon http://www.amazon.com/The-Passionate-Programmer-Remarkable-Development/dp/1934356344

Its the same ISBN from what I could see, even though amazon says 1st edition and the publisher says 2nd edition.

u/bishamon72 · 5 pointsr/golang

I had a recruiting firm send me this book. Pretty interesting.

https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850

u/grandstream · 5 pointsr/singapore

As someone who has alot of friends who received the NIS previously and it has been rebranded to SG:D scholarship, I can you tell that almost all of them want to break their bonds if they could afford to.

Therefore my advice to you is to not take up the scholarship unless you need to for a various reasons:

  • Unnecessary stress to maintain your grades to fulfill the scholarship requirements. Especially in tech, grades may not be the best indicator of your capability as many companies have been enlightened about that. Instead of joining hackathon, doing some side projects, a number of my scholar friends would rather focus on mugging and studying for grades.
  • While a job is typically secured after your studies, you might not get to choose exactly what you want to do. Some agencies with better HR department might get your input and allocate a position for what you want to do, but that is not always possible depending on the manpower limitations or the projects going on.
  • Lastly if you are really that good, then getting a job is the least of your concerns, and you are likely to get better opportunities than what you signed up, which is what my friends are complaining about but they LLST because they don't think it's worth it to pay 10% compound interest over x year for the liquidated damage.

    If you really want to take the scholarships in government agencies, there are some perks too:

  • Little to no financial burden on your parents for your entire college education + exchange
  • Scholars in agencies tend to receive all the high profile projects/opportunites first (however do prepare to work hard too)
  • Due to the high profile projects, scholars tend to be fast tracked and promoted wayyyyyy faster.
  • If you like the public sector, scholarship does help alot.

    To be honest, the first 5 years of your career is extremely important because they setup the stage for your career advancement. My (biased) advice if you are serious about tech and developing skills to do awesome work is stay out of public sector, typical MNCs, banks and consultancies because there's just too much wayang than doing the actual work. Most consultancies in Singapore are just sweatshops than doing good work. Go work in tech firms that are known for their engineering processes and build stuff.

    And if you want to get into FAANG, it's not that difficult if you put in the effort to prepare for it and try to do as many internship as possible. You should be willing to work through one of the following books

  1. https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=dp_ob_title_bk
u/engineering_stork · 5 pointsr/ProgrammingBuddies

Lol, competitive coding is usually overkill for interview prep. Don't get me wrong--if you are good at competitions, you will almost certainly do well on interviews. Coding competitions focus much more on "finding an important insight"--usually beyond anything that you'll have to know for work--and then coding a solution, while interviews focus much more on your ability to hold many different moving parts in your head. Competitions also tend to focus on parsing inputs, which, if you are using a language like C++, is a pain in the ass and can be unnecessarily discouraging if you just starting off.

​

My advice is to check out the CTCI book and to write working code for as many problems as possible.

https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850

​

Be able to crank out DFS in your language of choice. Code every day. Try and work on problems that are easier to solve theoretically but that require holding a lot of different components in your head while you write the solution. The bottleneck for most people is writing correct code even after they know the solution--not "solving the problem" with theoretical data structures.

​

Also, know your language well. Spend some time every day typing out the apis for the basic data structures into your lang's toplevel or interpreter.

u/enteleform · 5 pointsr/Python
u/eatstraw · 5 pointsr/learnprogramming

Here's a really good book by someone who used to conduct coding interviews at Microsoft, Amazon, etc.

Cracking the Coding Interview

Still, it's not likely that you'll see the same exact questions on an actual interview. Just practice a lot and get comfortable with solving problems. That will help you when it's time to code on-the-fly at an interview. Also, it's more important to talk through the solutions. Coming up with an innovative, elegant, or efficient solution with pseudocode is more important than getting the syntax exactly right in a particular programming language.

u/skubiszm · 5 pointsr/Purdue

I highly recommend Programming Interviews Exposed: Secrets to Landing Your Next Job. This has greatly helped me with the technical portion of the interview. Especially companies with difficult interviews (Microsoft, Google, Amazon, etc)

u/eric_weinstein · 5 pointsr/learnprogramming

Seconding The Pragmatic Programmer and Cracking the Coding Interview. I'd also recommend:

  • Code Complete: verbose and somewhat self-congratulatory, but extremely good.
  • The Mythical Man-Month: a little dated and weirdly religious at times, but has great insights into how software problems are actually people problems and how large projects are (mis)managed.
  • Design Patterns: a.k.a. the Gang of Four book. This one's a classic.
  • Pro Git: you mentioned version control systems. IMHO, you should learn Git if you don't know it, and this book is a great resource.

    If you let us know which languages you primarily write, I can probably recommend some good language-specific titles, too.
u/thatsnotgravity · 5 pointsr/learnprogramming

Pragmatic Programmer, Clean Code, and Head First Design Patterns come to mind right away. They're 3 of my favorites.

There's also Design Patterns by the Gang of Four. That's a lot more dense IMO than Head First, but it's fantastic material.

Since you're looking to jump ship and start interviewing, take a look at Cracking the Coding Interview. That will prepare you for any questions you run into during the process.

It's probably also worth brushing up on Algorithms and Data structures.

u/wpnx · 5 pointsr/learnprogramming

Better yet, start building a portfolio by open sourcing the code on github. Include links to your projects in your resume. Have your resume live on linkedin and make sure its up to date and completely public.

As an interviewer, I love to see code examples and a pasion for coding in free time.

P.S: If you're about to go into software engineering interviews

  1. Do 4-5 problems from this book every day. After about a month, you'll be acing interviews.

  2. Do problems from here

  3. Check out topcoders for extra practice.
u/VT-Hokie · 5 pointsr/cscareerquestions

Cracking The Coding Interview Read this book from cover to cover and be ready to accept your 75K+ job after you start murdering interviews left and right.

u/10_6 · 5 pointsr/learnprogramming

Some books that could help you practice algorithms and coding challenges are:

  1. Elements of Programming Interviews

  2. The Algorithm Design Manual

  3. Cracking the Coding Interview

    If you want some actual practice solving challenges with some guidance and/or help, I'd recommend Coderbyte which provides solutions to the problems along with the ability to view other user solutions so you can learn how others solve the same challenges. This article might help you find some other coding challenge websites as well.
u/aMonkeyRidingABadger · 5 pointsr/learnprogramming

Here are the resources that I have used in the past. These are the type of questions that the large bay area software companies ask during phone screens and on site interviews. I've interviewed at a number of these companies and currently work for one of them. They all do similar things both in terms of the coding questions they ask as well as the overall interview process. I've never interviewed for a start up or any other sort of company, so I cannot speak to how it's done outside of large software companies on the west coast.

The following book, Cracking the Coding Interview, is great. Some companies use questions straight out of this thing. Others will ask one of these questions with a little twist.

http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

Either of these sites are good resources for actually writing code. Some of the challenges on Hackerrank are harder than you'll probably ever encounter in an interview, though it's worth noting that I've been asked a couple of the problems marked as hard on OJ Leetcode during onsite interviews (I recall LRU cache and a dynamic programming version of text justification specifically).

https://oj.leetcode.com/problems/

http://hackerrank.com/


For general stuff you need to know, this blog post about how to prepare for an interview at Google is a good resource. Jump down to the Tech Prep Tips for the relevant stuff, or just read the whole thing, it's a good read.

http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html

u/skateracer · 4 pointsr/The_Donald

This is one of the most supportive groups I've ever seen. Studies have shown that conservatives donate about 30% more than liberals do; I suggest a book called "Who Really Cares" https://www.amazon.com/Who-Really-Cares-Compassionate-Conservatism/dp/0465008232

u/tsujiku · 4 pointsr/gamedev

A) There's no reason to wait. Start looking now.

B) I don't have any experience with game programming interviews in particular, but I would highly recommend the book Programming Interviews Exposed for any sort of programming interview. It's a wonderful resource to refresh yourself on the basics.

u/akastrobe · 4 pointsr/cscareerquestions

Good news! Very few people code well in interviews, from what I've heard. Boneheaded mistakes are practically expected. Ask lots of questions about the problem--it'll give you more time to think and it'll make it clear that you're trying to figure out exactly what they're asking.

Amazon interviews are just like most technical interviews, in my experience. A FANTASTIC book to prep for interviews with is Programming Interviews Exposed. It goes over a lot of the data structures and common types of problems you'll get in interviews. It's great for day-of refreshers, or for going through more in-depth. HIGHLY recommend it!

u/zorkmids · 4 pointsr/compsci

I found Glassdoor's collection of user-submitted interview questions helpful in my last job search: http://www.glassdoor.com/Interview/index.htm

This book is also helpful, although much of the advice in it can be found elsewhere on the net: "Programming Interviews Exposed":
http://www.amazon.com/Programming-Interviews-Exposed-Secrets-Programmer/dp/047012167X/ref=sr_1_1?ie=UTF8&s=books&qid=1292102203&sr=8-1

u/harberton · 4 pointsr/AskUK

For the question of what makes cities rich and poor there a huge number of possible answers including human capital, infrastructure, luck (take Seattle as an example, it got a big technology industry pretty much by luck because Bill Gates moved Microsoft there from Albuquerque because it was his home area and then the forces of urban economics does the rest), resources, etc.

I'd recommend reading these books: Keys to the City by Michael Storper (he was my lecturer, he's a professor at LSE, UCLA and Sciences Po) and The New Geography of Jobs by Enrico Moretti. Even just the introductions provide a good insight.

http://www.amazon.co.uk/The-Geography-Jobs-Enrico-Moretti/dp/0544028058http://www.amazon.co.uk/Keys-City-Institutions-Interaction-Development/dp/0691143110/ref=sr_1_1?ie=UTF8&qid=1451394581&sr=8-1&keywords=keys+to+the+city

To get an insight into what our economy makes and then sells, and it buys from abroad, and from where, this is a good website. Bear in mind it's looking at goods - the UK sells quite a lot of services abroad too. http://atlas.media.mit.edu/en/visualize/tree_map/hs92/export/gbr/all/show/2013/

In a nutshell the UK is good at services (financial services, consulting (of all types not just management or strategy), advertising, law etc.), pharmaceuticals, high tech engineering (aerospace stuff, ARM in Cambridge for example and other IT, car production)

Good article about growth and decline of a city here too http://www.newyorker.com/magazine/2004/03/29/the-churn

The economy section of the ONS website also contains a lot of information about which sectors are big, how many people work in them, their growth and contribution to the economy, regional growth and contribution to UK overall too, and so on. House of Commons Library and Bank of England are good too.

u/JangleAllTheWay · 4 pointsr/AskAcademia

Read this for a sense of the discipline:

https://www.mla.org/Publications/Bookstore/Nonseries/Introduction-to-Scholarship-in-Modern-Languages-and-Literatures-Third-Edition

​

Are you going to do British, American, or something else? If you're going to do American, for example, I would go through the Shorter Norton Anthology of American Lit and read anything you haven't read yet.

https://www.barnesandnoble.com/w/the-norton-anthology-of-american-literature-shorter-ninth-edition-robert-s-levine/1129775656?ean=9780393264531

​

Then I would read this for a sense of the market and job prospects:

https://www.amazon.com/Professor-Essential-Guide-Turning-Ph-D/dp/0553419420

u/adhocqueery · 4 pointsr/ChronicPain

The neat thing about knowing you have EDS as a young person is that you have the knowledge and opportunity to start protecting and taking extra good care of your body now. Preventing injuries and protecting your joints may go a long way towards preventing pain later.

Do you have a doctor to offer you any guidance? In either case, you might check out The Joint Hypermobility Handbook, a handy guide by one of the big EDS experts that covers basically everything you need to know, in a format that works for both doctors and patients. As someone else mentioned, /r/ehlersdanlos is a great resource, as is Ehlers Danlos Athletes on FB. Outside of those groups, reading about EDS online can get scary fast, so do know that there are plenty of people living well with EDS - they're just not the ones who tend to dominate the forums.

The best advice I've gotten for managing my EDS-III is to stay in shape. And don't wait to see someone about problem joints! Deconditioning can happen pretty quickly, so finding ways to exercise despite any random injury has been super important. A sprained knee can make it hard to exercise, but not exercising quickly leads to other injuries as I get weaker, and then things get scary fast and it is long, hard fight to get back to "normal." The real key for me has been finding a form of exercise that I enjoy, and then finding a PT that will help me with remedial exercises, adaptations, taping, bracing, etc. to better support my body in those activities. If you don't have pain, PT may not be necessary, but you might also consider going in for an evaluation to alleviate your concerns and get ahead of any particularly unstable or cranky joints; they could also help you set up an exercise plan if you don't already have one.

My PT is also big on "joint protection," which seems to be a think that pops up on a lot of arthritis sites, but it also seems like solid advice for any body. Try Googling it or here's a short guide that seems to sum it up pretty well.

tl;dr: stay strong, enjoy life, and hopefully you'll continue to feel pretty OK. :)

u/dlp211 · 4 pointsr/rutgers

I had an internship with Amazon during my Sophomore to Junior summer. I also received offers from Microsoft and Google to intern this upcoming summer (Junior to Senior), but instead took an offer from Fog Creek Software. I have friends that have interned or are full time at Microsoft, Google, and Amazon, all from Rutgers University.

My advice is to anyone looking to get one of these positions is:

  1. Start early, companies have only so many positions, and once they are taken, they stop looking. Generally this means you need to apply by November.

  2. Data Structures and Algorithms, know them inside and out, know their complexity, know how to implement them, know their tradeoffs, and know when to use them. A great book for someone who has never done any data structure stuff is Data Structures and Algorithms in Java. I took CS111 and read this book and was able to get through the Amazon interview.

  3. Read and do the exercises in Cracking the Coding Interview. Also use the author's resume template for making your resume.

  4. Interview every chance you get. Seriously, I interviewed at about 15 places before I interviewed with Amazon, by the time that I got to the Amazon interview, I was fairly comfortable with the process. I was still nervous about the interview, but I knew generally what to expect and didn't get hung up on their curveball questions.

  5. Pick a single club, whether it be IEEE, USACS, RUMad, etc. and be deeply involved with it. You can be a member of more than one, but you should be really involved with one.

  6. Pick a language and know it. You aren't going to lose points because you don't know Python, or Ruby, or whatever else is the hot language this month. Java, C, C++, you should know one of these languages, and preferably two, C and then either Java or C++.

  7. And finally, the only way to really know a programming language is to use it, so program, program, program, and then program some more. While you're doing all this programming, you should take a few minutes out of your day to learn about source control (git or git, there are no other options :) ). Then put the cool stuff you make on github or some other source control website.

    This may seem like a lot because well frankly it is. But if you actually enjoy programming and computer science, than this is pretty straight forward and easy. And finally, don't get discouraged. Just because you didn't make it into one of these companies the first time you apply, doesn't mean you'll never make it. Some people don't interview well(it is its own skill, hence #4), some people just can't build out a good resume(seriously use the template that I provided and read cracking the coding interview from front to back), and other people just aren't ready(you really need to program a lot). But that doesn't mean that you will never make it with them, just give it another year, identify your weakness, and work on it.
u/pewpsewp · 4 pointsr/learnprogramming

I really like this book for brushing up on concepts for interviews.

u/mmmarvin · 4 pointsr/cscareerquestions

I remember reading a study where researchers found that people who were smart generally felt that they were dumb and people who were dumb, generally overestimated their intelligence. So I thought that's something you should maybe think about since you mentioned that you think you're not a smart guy. With that said, I think you should go for it for sure and I think that with enough preparation and planning, you can increase your chances of getting an offer from Google. And if you don't get it the first time, you should try again. I've read that some got in on the 2nd or 3rd try.

Your plan looks sound. I would recommend focusing on a specific language though instead of focusing on functional programming, C, JavaScript (unless you plan on doing front-end work, I don't think JavaScript would be useful in this situation). Java is one of the widely used languages at Google.

Buy Cracking the Coding Interview. It's such a useful book. The material it goes over isn't very in-depth, so don't expect to use it as a way to learn about various algorithms and computer science concepts. Rather, solve the problems in the book. The problems are of varying levels, some easy while some may really challenge you. You will feel really dumb trying to solve some of these problems, but spend as much time as necessary and try to come up with a solution that you then refine. You may not come up with the optimal decision on the first try.

Solve problems on CareerCup. From what I understand, some of the questions on there are actual Google interview questions.

Make sure you have a thorough understanding and know how to implement basic data structures such as Linked Lists Hashtables, Trees, Binary Trees, N-ary trees, Graphs and Di-Graphs. Know how to perform breadth-first search, depth-first search on both trees and graphs. Know post-order, pre-order and in-order tree traversal. There's more but that's what I remember off the top of my head.

The last interview of the on-site interview will be about system design and it requires a more general architecture knowledge (HTTP, SSL, compression, network latency, disk latency, etc...).

Search for blogposts of people who've interviewed at Google. There are like a dozen or more of them. They give you a good overview of the process and some even contain questions.

Best of luck!

Edit: I forgot to mention the Big-O notation. It's important and every interviewer will ask you for the time complexity of the algorithm you just implemented.

u/ihavecsquestions · 4 pointsr/androiddev

To expand on the above, I would say that you definitely need to learn DS&A before you can get a job. I got lucky getting my first job because they didn't ask me any algorithms questions but trying to find a job is next to impossible if you can't answer their questions on a whiteboard.

Also, practice coding on a whiteboard/paper. I cannot stress this enough. It's amazing how many things you think you know but you realize that your IDE fixes for you/reminds you of. Simple, simple things that make you look completely silly if you don't know them during interviews. Plus, it's just a different process.

It's also quite nerve-wracking to stand in front of a white board and have people watching you write code.....so it's easy for nerves to get in the way as well...

Also, get this book:
http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

There are plenty of other books out there as well...

Good luck!

u/Redrot · 4 pointsr/math

Can't speak for graduate programs, but if you're applying to positions that involve coding, you'll be asked at the very least about your coding experiences, and (if you're applying to a company that actually has decent tech) be asked some technical coding questions - so basically, don't sweat the wording too much because companies will verify your experience in interviews. For applying to software development positions, I highly recommend checking out Cracking the Coding Interview, this book pretty much hits the nail on the head for everything you need to prepare for.

For reference, I was a math major and only took 2 coding courses in college (1 was required for all graduates), but I had been coding in java since 7th grade, and despite learning practically nothing new in college and getting fairly rusty, I was hired at a smallish company and do data science and software dev (currently messing around with neural nets basically just as experimentation). I put down on my resume/cv that I had 10+ years of experience in Java, was fairly proficient in C++ and Python (which was true, I had done some work in those in college and coded up some fairly large projects), and said "had experience with" a few other languages.

u/Ojamallama · 4 pointsr/uwaterloo

I've had a 70 minute interview once, it was one long technical question with personal questions in between parts. Apparently this is the key to success for software interviews
https://www.amazon.ca/Cracking-Coding-Interview-Programming-Questions/dp/098478280X?ie=UTF8&*Version*=1&*entries*=0

u/Just_a_Lampshade · 4 pointsr/jobs

Don't. Do not under any circumstances say you would work for them over all other choices. There's a few reasons for this.

  1. It often comes off as non-genuine. Hiring managers hear this phrase constantly
  2. It seems desperate.
  3. It's easy to lowball you or keep you waiting if they know you aren't going anywhere. Companies make offers very quickly to the candidates they want to take quickly before someone else does

    This isn't necessarily done on purpose, but I've seen it happen first hand too many times to count. It's almost like the "bad-boy" dilemma in dating- the guys who seem farthest away to reach are usually the most in-demand.

    Instead, communicate your passion through the knowledge you have about their company. Talk about their things they've done you admire, ask them questions about how the framework they use and why (Do your research, don't say anything obvious!). If there are company github projects, read through them all. Try to get an idea of what they might be working on next and why.

    In a phone interview your goal is not to get the job, just to get to the next interview. Give them what they need without sending across any red-flags. Really look closely at the job description and make sure you check each criteria. Have prepared answers for questions like: "Tell me about yourself," "Where do you see yourself in 5 years," etc.

    I'd also recommend buying "Cracking the Coding Interview" if you have some time to prepare: https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

    It's extremely helpful.
u/mattpratt · 4 pointsr/cscareerquestions

This post is incredibly realistic and I found it to be very helpful: http://www.reddit.com/r/cscareerquestions/comments/1z97rx/from_a_googler_the_google_interview_process

Practice. Practice. Practice. Know your data structures and algorithms. I would read up on Glassdoor and CareerCup to get a general idea of the level of difficulty. I would say Google's interviews tend to fall about average on the level of phone interviews I've done.

Other resources:

u/Zacru · 4 pointsr/compsci

Cracking the Coding Interview: More to help you get a job as a Software Engineering, but full of fun problems even if you do them just for the challenge and learning.

The Code Book: A great overview of the history of Cryptography.

u/VerticalEvent · 4 pointsr/cscareerquestions

> Now herein lies the problem. I now need to condense a 4 year degree down into two years.

Just to be sure, your department should have an undergraduate adviser whose sole purpose is to help figure this out for you. Arrange a meeting to make sure your plan will work as you expect (just to be on the safe side).

> Also, I have heard that interviewers in Big Tech will probably ask Operating Systems questions, memory management questions, and scalability questions, so I am very worried that I won't have the experience to answer these questions in interviews. My biggest fear would be to just say "I haven't had any experience with this yet" in response to a question in an interview. I would be dropped in a heartbeat.

First, the ability to say "I don't know" is a huge thing for you to say, since it's an honest answer and will give a general good impression on your interviewer (provided the question isn't a basic one :p). If you want to prepare for these interviews, I recommend reading Programming Interviews Exposed and Cracking the Coding Interview (which you have read, but I'll mention it here simply for other people's benefits) (in that order), to brush up and learn about technical interviews.

> Finally I want to note that throughout this time I have been working through "Cracking the Coding Interview" [...]

Can you elaborate on what you mean by "Working through"? You don't (and shouldn't) be able to answer all those questions from memories, but understand the general thought process and tricks to solving them. It's very unlikely you will receive an exact question from the book, but a variation of it might appear. It's also important to note that each problem should take no more then 30 minutes to solve (some far less).

u/cjrun · 4 pointsr/cscareerquestions

Everybody's learning style is different. Here are some books I believe to be essential for any novice or pro.

Programming For Dummies. It has a stupid title, but it is well reviewed for good reasons. I read through this beast in three weeks. There is no coding involved, as it is mostly theory, but it covers most of the bases of computer science and programming logic. Looking back, much of it confused me at first read, but the big ideas are all presented here. Reading this during the summer before first semester was a huge boost for me. All of the major computer languages are discussed in the book.

Cracking the Coding Interview. A book meant for veterans trying to get into highly demanding top tech companies, the book is a great introduction to programming paradigms. There are numerous examples of problems in each chapter with answers at the back of the book. The whole thing is in Java, with a short chapter on C++.

Design Patterns. As you learn more about object oriented programming, the concept of design is introduced. This book is the holy grail of software architecture and recommended by many. I would hold off acquiring it until you are certain that CS is where you want to be, it is quite technical. This book follows C++, although a Java version of the patterns exists on Github.com

A non-technical book just for fun:
The Innovators is essentially the story of computer science and how it got to present day. It follows the characters, human beings, that were involved each step of the way right up until modern day. Your professors will be impressed that you know who Alan Turing, Grace Hopper, and Charles Babbage were. If only I had been at THE MOTHER OF ALL DEMOS! The actual stories of Microsoft, Apple, The internet, the PC, video games, the space program, etc. On Quiz Up, a trivia app, every other question in the CS category involves names from this book. Read it just to be a real geek that knows where this stuff came from, and the drama/tension that led to innovation. The book is actually really funny at times.

u/Pantstown · 4 pointsr/girlsgonewired

> ...gain some experience under my belt

I agree with /u/ivix; it's the wrong kind of experience. If you have a CS degree, then you should be developing, not answering phones.

I recently entered the field, and I found https://pramp.com/ to be super useful for technical interviews both over the phone and in-person. They're live, so it feels a lot like a real interview (i.e., nerve-wracking).

Also, Cracking the Coding Interview is a must. There might even be a copy at your library if you don't want to buy your own copy. This walks you through the interview experience at the big software companies (Microsoft, Amazon, Apple, Google, etc.), and teaches you how to solve an algorithm problem, not what the answer to each problem is.

Finally, as dumb as it is, I'd recommend practicing coding on a white board (or a piece of paper). It's stupid that companies do it, but if you practice it, it'll be easier to think about the problem you've been asked and not about how weird it feels to be writing a loop in marker rather than typing it. Write sort algorithms, BFS/DFS, fibonacci, etc. Not that any of that stuff will necessarily help you, but I felt much more comfortable in the actual interview because I was used to drawing code.

Let me know if you have any questions and goodluck!

u/whocares65 · 4 pointsr/cscareerquestions

Most people's "hard" interview stories are about difficult whiteboarding exercises or some such.

The good news is that there are plenty of resources, like Cracking the Coding Interview (considered the "Bible" of interview practice books), HackerRank, etc. to help you get better.

I recommend practicing HackerRank alone, and doing problems from CtCI (yes, the book is so good it is usually referred to by an acronym) with others under "realistic" conditions (i.e. in front of a whiteboard, with one person posing as the interviewer and the other trying to solve the problem).

The bad news is that fundamentally improving anything takes time. If you practice interviews twice and do a few problems from HackerRank each week, you will see significant improvement after ~3 months.

Lastly, I leave you with this fantastic talk by Sean Lee, a CS alumnus from the University of British Columbia, about interviewing with big tech companies.

Long story short, just practice and keep trying; failing once, twice, or even more times is no problem. Companies (rightly) care only about how good you are now, not how much you sucked a year ago.

u/verylittlefinger · 4 pointsr/SeattleWA

This person worked in a bunch of tech companies and then quit to sell their interview questions online:

https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850

u/zzgzzpop · 4 pointsr/cscareerquestions

You say you haven't done an algorithms or data structures class yet at university, which tells me you're probably not even at the midpoint of your student career. There are plenty of internships and opportunities out there. If I'm right about your current progress at university you have time on your side too, so I wouldn't sweat it too much.

If you think you're having trouble with the interview process itself you might want to check out Cracking the Coding Interview. It goes into detail about the entire hiring process, what you should DEFINITELY know, what you should probably know, how you should go about coding on the whiteboard, and goes so far as to even suggest how you should dress for the interview. The bulk of the book are the useful sample questions and answers. Definitely worth a read.

u/Lykoce · 4 pointsr/learnprogramming

I just picked up this book Cracking the Coding Interview which i wish i would have done it over a year ago. If you preview the book and go down to page 30 it has a process map. Basically its a mix of projects, practice interviews, and tackling interview type questions.

If i had a do over, i would grab this book early on and keep it close while completing other books like head first C# or whatever language fits your goals.

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/tcron22 · 4 pointsr/computerscience

My girlfriend got me Cracking the Coding Interview my sophomore year of college.

https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850

It showed me what to expect in future technical interviews, and gave me something to look forward to. It's not and end all, be all by any means, but it's a good starting point. Eventually he should look into leetcode for these sorts of things, but this book was recommended to me early on, and I really enjoyed it.

u/firecopy · 4 pointsr/cscareerquestions

Have you tried Cracking the Coding Interview? It has a section dedicated to Big O.

u/bendy_straw_ftw · 4 pointsr/quant

Hey man, I interviewed a couple of months ago at a trading firm in Chicago for an Analyst/Quant role. Aside from the one the other user mentioned, this one was super helpful for me too!

u/nagget · 4 pointsr/finance

Heard on The Street is a great book to prepare for interviews. ^^Psst, ^^up ^^here, ^^there's ^^a ^^free ^^pdf ^^if ^^you ^^search ^^on ^^google.

u/deadcatdidntbounce · 4 pointsr/quant
u/RIPdig · 4 pointsr/cscareerquestions

I would say its difficult for a lot of people even people with formal education.

Cracking The Coding interview is a good start.
You might also want to try this book.
Also websites like leetcode and hackerrank might help.
edit: this article might also be interesting to you.

u/wiseprogressivethink · 4 pointsr/TheRedPill

Advice (note: IANAD):

u/BlindTreeFrog · 4 pointsr/law

(NOTE: I'm a Law Student, not an attorney.... so of course that means I know everything)

A filler course I had to take this last semester was on opening your own practice. The main assignment was to write up a business plan hitting the main points with a 1 year and 5 year budget (the budget being the really important part).

We used this text, which the professor liked but I found to be a tad out of date. Still, it hits the high notes and what you should at least be considering. http://www.amazon.com/gp/product/1590312473


Insurance is cheap. I was quoted a rough number of $800 for the first year and about a 20% increase for the next few years capping at around $2500 by the fifth or six year. This was a generic practice and different disciplines might vary a bit. Also consider insurance for your office (as in, clients might slip and fall on ice or the rug). And don't forget about health insurance for yourself. Working for yourself means no sick days, so access to a good doctor will be useful.


Check for local bars in addition to the state bar. The local bar in my area is only another $150/year and has enough free CLE's to cover the bulk of what my state requires every year, if not all. Your state may be similar.

For my class, I argued that using public law libraries and fastcase (Free subscription with bar membership in my state) was enough to start until I figure out if I need Westlaw or Lexis Nexis. But that's another cost to remember.


Filing cabinet's, office equipment, and storage concerns should be considered as you'll have paperwork that you need to hold onto long term until you shred everything.


Consider separate banks for your business, iolta, and personal accounts for safety reasons.


Postage will be a bitch. Be sure to budget for stamps and envelopes (consider a postage meter). Don't forget that you may need access to a fax machine. Also, you may need a beast of a printer and lots of toner.


Virtual Receptionists (eg: Ruby Receptionists) are actually pretty reasonably priced and can add a decent professional polish.


Get some templates for intake forms, retainer forms, and related. Lawyer Mutual has some templates online you can work from.


Skimming over what I submitted, those were the main points the professor was hammering. You'll be a Sole Proprietorship at first, but S Corp might be reasonable after a few years.

u/Endyd · 3 pointsr/learnprogramming

On my commutes (I drive 25 min), I have been mostly listening to Coding Blocks podcasts OR thinking about the problem I have been working on most recently and audio recording my thoughts.

When I am not able to listen to podcasts, sometimes I have looked at "Cracking the Coding Interview" book before hand and getting a problem in my head to work through while I sit/walk/drive/eat/etc.

Hope you find a great way to spend your commute!

u/teryror · 3 pointsr/learnprogramming

I've seen a lot of recommendations for Cracking the Coding Interview by Gayle Laakmann McDowell. I don't own the book myself though, can't say whether it covers that kind of problem - I do believe it covers some more general data structures and algortithms as they tend to come up in interviews though.

u/jb3689 · 3 pointsr/ruby

I came here to put this same book. This book is crazy, crazy good. It would help to have some knowledge of algorithms and data structures before going in as the examples aren't vast and the information are fairly heavy, but it's a fantastic reference.

I would encourage you to change your thinking from "learning algorithms in Ruby" to "learning algorithms" and then just implementing examples in Ruby. There are a few classic Algorithms book that I'd highly recommend. In addition to The Algorithm Design Manual, Data Structures in C is written in C but fairly generic and gives you the right tools for thinking about performance and algorithms, and Introduction to Algorithms, 3ed is more academic but also stupid inexpensive right now. It's a great learning book as the examples are very detailed. It's aimed at interviewing but Cracking the Coding Interview has a nice short survey of algorithms and data structures too

u/davwad2 · 3 pointsr/CS_Questions

It depends on what language you'll be coding in. If you're on the OOP Spectrum, you may have questions surrounding:

  • Inheritance
  • Polymorphism
  • Interfaces
  • Abstract class
  • Design Patterns
  • Explain the difference between...
    • Interface vs Abstract class
    • Array vs ArrayList
    • Map vs HashMap
    • Map vs Set
    • REST vs SOAP
    • Delete vs Truncate (if you will interact with databases in your role)
    • Method Overloading vs Method Overriding

      www.javatpoint.com has been my go-to resource in my job search for interview prep questions

      Here are some other resources:

  • UC San Diego Coursera course on coding interviews
  • Cracking the Coding Interview

  • Career Cup
u/CdmaJedi · 3 pointsr/rails

I learned binary trees, linked list, and hash tables as a sophomore in high school. It was rare back then, but we had a pretty awesome CS department. I would check this book out. It has a lot of zany, non real world problems that may come up in an interview. Plus, it's kind of fun (imo). I don't do rails, but I think the logic is applicable in any language.

http://www.amazon.com/Cracking-Coding-Interview-6th-Edition/dp/0984782850

Edit: I just read the preview on amazon. It has been a while since I read this book. Buy it. It covers a good amount of data structures, algorithmic run-time complexities, bit manipulation, and all kinds of good stuff.

I'm on my phone, but when I get home I'll link some more stuff for you

u/146throw213 · 3 pointsr/SJSU

there is just no way to go over every data structure/algorithm in a fashion where they are useful to you in a white board situation in one semester.

from my experience, learning how to implement them from scratch is great and all, but practical use of data structure outweighs any shitty homework that requires you to memorize how its done in the book. the class (again my experience) gloats over all these things that introduces you to what is important, but then you need to spend hundreds of hours outside the class to look at a problem and know what you need to use in order to grab the best run time, minimizes time/space complexity, and their tradeoffs. I highly recommend that book and http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/ref=sr_1_1?ie=UTF8&qid=1449310024&sr=8-1&keywords=cracking+the+coding+interview+6th+edition if you are looking to succeed in getting internships. Sites like hackerrank, leetcode, lintcode are all great places to practice. hop over to /r/cscareerquestions for more people in the same boat as you

if you wanna go more in depth regarding 146 at sjsu, feel free to PM me your email and we'll talk more

good luck

u/trout_fucker · 3 pointsr/webdev

>would you say this is critical knowledge to be a good web developer?

Not really. Most people are out there solving business needs. Even if you're working for a web app, the majority of it is taking a business problem and building and designing a solution around it in whatever way makes the most sense. How good the architecture is, is really not super important because you're likely not going to be supporting enough customers that throwing more hardware at it can't solve. Knowing how things work and how to build maintainable software, is more important than knowing obscure CS fundamentals inside and out.

But what you described sounds more like something from Amazon, Apple, FB, MS, Google, or other large tech company. They want true blue software engineers, not someone who can make them a pretty landing page. I know from first hand experience that FB interviews for JS developers hit heavily on memory managment and Amazon doesn't give a shit what language you program in. Cracking the Coding Interview is a good way to study for all of those (but you're not going to memorize that book in the time you have).

u/Nelo112 · 3 pointsr/cscareerquestions

There's also the Cracking the code Interview Book. And you'll probably have to write code on a whiteboard during the interview - that's very different so you should practice that.

u/awessie · 3 pointsr/cscareerquestions

Please tell him that practicing for interviews is an absolute MUST in this field. I have a CS degree (with a high GPA) and 5 years of experience, and even I need to spend a minimum of three weeks full time reviewing and practicing for interviews to do well (potentially longer if I'm also working). These things are very tough, and a totally different beast than anything you experience at school or work. The payoff is amazing if you do this though, as there is such a high demand for people with tech skills. If you can combine those tech skills with great people skills, even better. You just have to put in the hours and endure the pain of jamming algorithms and datastructures into your brain for a few weeks. Interviews are changing in some places to have a more practical focus, but the traditional type of preparation will still be useful. My recommendations:
https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850
https://www.hackerrank.com/domains/tutorials/cracking-the-coding-interview
Interviewing.io

Getting the first job is the hardest, and if he feels like the person who he is talking with could be a good mentor, it might be the right choice. However, it sounds like he didn't prepare as well as he could have, so he might be eligible for other jobs that are better located. Definitely consider his mental health, though, and don't push him to keep going if he clearly is suffering.

Lots of waffling in that last paragraph there, sorry. I just finished the interview process and accepted a job, so I feel his pain. I was lucky to have several job offers all at once, but I would have been very tempted to stop if I had only received one, even if it wasn't great. It's a grueling process!

u/towerdweller · 3 pointsr/learnprogramming

I used this, and was well prepared for a really tough coding interview:

https://smile.amazon.com/gp/aw/d/0984782850/

u/brettb515 · 3 pointsr/cscareerquestions

I recently completed a job search in a major career shift. I have degrees in a different engineering branch, like yourself, and have been working in that industry for the past few years. Along the way I picked up programming as necessary. For various personal reasons that I'll skip over, I recently decided to make the jump to tech/CS, and have accepted a job at one of the "big 4" -- haven't started yet.

In terms of prep, here's what I did. YMMV.

  1. I was already pretty proficient in Python. If you're not proficient in one of the widely accepted interview languages, learn at least one, and be very comfortable in int.

  2. I had basically zero CS theory under my belt, so this is where I had to do the biggest prep. I picked up these two books, which are widely recommended (1: https://amzn.com/1118261364, 2: https://amzn.com/0984782850). Then I worked through them cover to cover -- I read every chapter first, and then I just solved problem after problem.

    Sites like hackerrank.com have some good problems to practice, too.
u/scarletham · 3 pointsr/finance
u/Stupidenator · 3 pointsr/rutgers

Honestly you're in a great place with that experience, so the thing to do now is just apply (online!). Apply to the big companies like Google, Amazon, Microsoft (usually a traditional resume + form) and to startups in NYC and SF (often more informal).

You'll also need to learn how to do technical interviews, which comes down to have tight grasp of data structures and thinking on your feet. I'd recommend this book to get started.

u/ikkebr · 3 pointsr/brasil

> 1) Como professor universitário você deve ter visto bizarrices (especialmente se foi em federal). Tem algumas histórias pra contar?

Não lembro de nenhuma história bizarra não. Era uma universidade privada e durante o turno da noite, então a maior parte dos meus alunos trabalhava durante o dia e no geral era um pessoal bem mais maduro do que o normal. Uma vez fomos num evento de tecnologia e um dos meus alunos me mostrou um site de vídeos de putaria (samba porno) e tal (achando que eu obviamente não manjava dos paranauês), e eu disse que era amigo do criador do site (que por sinal também estava no evento e é uma pessoa finíssima).

> 2) Poderia dar umas dicas para entrevistas (especialmente na área de TI)? Melhor roupa, o que não fazer, etc...

Tenha um LinkedIn atualizado (github também ajuda bastante), participe dos eventos de comunidade que você puder participar (e não só as semanas acadêmicas do teu curso). Embora TI seja uma área grande, boa parte das boas ofertas de emprego vão partir de pessoas que te conhecem ou já trabalharam com você, então é muito importante se relacionar bem e conhecer todo mundo (mesmo que sejam pessoas de áreas ou linguagens diferentes das que você trabalha).

Nunca tive problemas com dress codes, gosto de vestir camisetas engraçadas (threadless e tal). Se requer um pouco mais de formalismo, seja formal. Mas nas áreas que eu transito, pessoal é bem informal mesmo, com escritórios legais e coloridos, então não se importam muito com roupas desde que eu não esteja pelado (eu acho melhor não usar Crocs, nem Hawaianas, só pra garantir).

Tem dois livros bem interessantes, mesmo que você não vá fazer entrevistas nas empresas grandes, pois tratam sobre problemas de computação e tem explicações detalhadas que podem ajudar a melhorar a maneira como você resolve problemas. O primeiro é o Cracking the Coding Interview ( https://www.amazon.ca/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=sr_1_1?ie=UTF8&qid=1501540854) e o segundo é o Programing Interviews Exposed ( https://www.amazon.ca/Programming-Interviews-Exposed-Secrets-Landing/dp/1118261364/r ). Faz bastante tempo que li eles, mas esse segundo é bem interessante pq ele tem um compacto de tudo que você viu na graduação, de maneira bem corrida (você tem que ter aprendido as coisas), mas fácil de lembrar.

> 3) Me dá emprego?

Já fechei minha empresa

> Obrigado pelo AMA.

u/FullOfEnnui · 3 pointsr/cscareerquestions
u/purple_fuzzy · 3 pointsr/librarians

Read [The First 90 Days] (https://www.amazon.com/dp/1422188612/) by Watkins.

When I got my first branch manager job, I did sit and chat with every staff member (about 20 people) to get to know them.

I also asked if there was one thing they would change about the branch. I got a few good ideas that made sense and weren't hard to implement. I bought a $15 lamp for a staff area and it was if I had changed the world -- sometimes it doesn't take much to make a difference to the everyday.

u/techstuffguy · 3 pointsr/compsci

You should take a look at Cracking the coding interview.

u/rdavidson24 · 3 pointsr/law

It really is all about Foonberg.

u/Poofleberry · 3 pointsr/intj

Not an engineer, but a technical marketer. We get these types of interview questions too. It feels like I'm taking a math quiz and the interviewers are scrutinizing the way I'm holding the expo marker.

You can't avoid these situations in all cases, but if you practice enough at home, I'm sure you can make up for any "dings" in the whiteboarding portion of the interview by offering up code samples via your GitHub, portfolio etc.

This book has been recommended to me many times: http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X. The way the author thinks through the problems has been really helpful for me, even in non-coding interviews.

Good luck!

u/jmonty42 · 3 pointsr/cscareerquestions

> I'll also make sure I have the necessary skills before even considering interviewing and preparing more when I do.

No. Interview often and for jobs that might not even fit your skillset. If the company grants you an interview based on your (honest) resume, then they think you have at least a chance at getting the job. But more importantly, it will give you more confidence and make you more comfortable in those intimidating situations.

I got by BS in compsci last year and have been working at an ok company since then. I interviewed about every other month that whole time with other companies, some I didn't even care about. But I just got an offer from one of the Big 5 this week and I think a lot of my success came from interviewing often and becoming comfortable with that situation. Also, Cracking the Coding Interview helped with a lot of the preparation. Knowing what to expect from these types of interviews and preparing for that scenario is a big confidence-booster.

Also, as a side note, what school did you get your degree from that you hadn't heard of the modulus operator before?

u/sumzup · 3 pointsr/jobs

The only way to become good at programming interview questions is to practice questions.

Some good resources:
http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X
www.careercup.com (run by the author of the above book)

Find a whiteboard and work through the questions as if you were doing an interview IRL. Talk your way through problems. As you do more and more problems, you'll get better at solving them on the spot during interviews.

u/rcsAlex · 3 pointsr/rawdenim

I just picked up this book and it has some nice insight into the process, along with a ton of good programming problems.

u/bankimbhavsar · 3 pointsr/cscareerquestions

I think you are taking the right approach of preparing for algorithmic questions before applying.

I would highly recommend the following book for preparation...
Cracking the Coding Interview: 150 Programming Questions and Solutions by Gayle Laakmann McDowell
Permalink: http://amzn.com/098478280X

All the best for interviews.

u/ConsultingtoPM · 3 pointsr/consulting

Nope! I just had to frame my consulting experience for how it could be leveraged in a PM environment. What helped me do that was Cracking the PM Interview. It provided a nice overview of what a PM does and what attributes/skills interviewers may be looking for in candidates.

Honestly I'd be a little wary of those courses. Coding bootcamps work because you obtain a certificate, a network of people who have also attended the bootcamp, get experience in a language, and have an end-product that you can show on GitHub. From what I can tell PM courses only have the certificate and are severely lacking in the other portions. I'm sure there are some excellent courses out there, but there is no substitute for PM-like experiences you have as a consultant (e.g. clearing roadblocks, managing expectations, data analysis)!

u/user8F · 3 pointsr/cscareerquestions

Check out Cracking the PM Interview, written by the author of Cracking the Coding Interview. I found it invaluable for understanding how to position myself and prepare for PM interviews.

u/ThatOtherBatman · 3 pointsr/datascience

Exactly what it sounds like. They're going to be testing your ability to design a clean and efficient solution to a problem.
You don't need to come up with the "correct" solution. They're going to be more interested in how you think through the problem, your communication skills, etc.
I highly recommend [this] (https://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/ref=sr_1_1?ie=UTF8&qid=1465591474&sr=8-1&keywords=Cracking+the+coding+interview) book.

u/ActiveNerd · 3 pointsr/compsci

I think there is plenty of material out there that details what types of interview questions to expect from amazon, google, facebook, microsoft, and other start ups. See Cracking the coding interview and similar books. Best money you'd ever spend.

u/thedeen17 · 3 pointsr/Destiny
u/brenninja · 3 pointsr/learnprogramming

32 here, I was a high school teacher for 6 years. I learned quickly that it was not what I wanted to do long term. I started dabbling in programming and quickly fell in love with it. This past year I attended a year-long program (7 months 9-5 classroom, 5 months internship) for full stack web development. I had a well-paying position at a top tech company lined up before completing my program and am very happy with my career change.

My best advice would be to go for it! There is a huge demand for devs and while I understand it is easy to look at your age as a boon many employers will see it as a positive attribute.

  • You have proven from your past career that you can work with other people and handle yourself as an adult. Unfortunately this is not a guarantee for many fresh college grads
  • devs from different backgrounds are valuable as the more diverse your dev team is generally the more accurately it represents your user base

    Tips:
  • If you haven't done so already you might want to open a GitHub account and start putting some of your projects up so prospective employers have something to look at.
  • The online courses as well as bootcamps are great for project-based learning. During my internship I found that the biggest difference between myself as a bootcamp student vs. a CS major was in my lack of knowledge regarding data structures and algorithms. This is where most interviewers will focus their time with you. I used Cracking the Coding Interview to study before interviewing and found it very useful.
  • Use the skills you are gaining from FreeCodeCamp and TreeHouse to work on your own projects (not just the ones they walk you through)
  • Go to meetups and network.

u/meheleventyone · 3 pointsr/gamedev

Practice doing them as you would for taking a maths test. Most companies don't ask anything remotely original so knowing the answer already is a great help. There are literally books on them.

https://www.amazon.co.uk/Cracking-Coding-Interview-6th-Programming/dp/0984782850

Then go through the list /u/lapislosh has during the interview.

The funnest not-fun whiteboard question I've had was to write a ray-triangle intersection test.

u/hardonchairs · 3 pointsr/learnprogramming

You don't have to be a master to get hired at Google or Apple. You have to be good. The kind of good you get to be by really being enthusiastic about programming. But not unobtainably good.

https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850

These are the sort of tests they would give you. The person I spoke to who works as Google mentioned that book specifically and that the test she got was straight out of that book. That book actually talks specifically about how to get hired at places like Google and Apple. Not just "a company like that" but there is detailed discussion about the different big companies like MS and Amazon too. I just need to get around to reading it.

u/dasmim · 3 pointsr/devops

I personally haven't used it or read it, but I've seen https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=dp_ob_title_bk be recommended on here (and other places) before

u/Anman · 3 pointsr/cscareerquestions

This is the book that people refer to as CTCI: https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850

I have the previous edition (5th) and there are 20 questions pertaining to trees and graphs.

I personally found EPI to be a lot more useful.

u/Wonderful_Safety · 3 pointsr/programming

leetcode.com

hackerrank.com

\>Best seller in Hacking and in Computer Security & Encryption

https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850

u/retrospectr3 · 3 pointsr/ITCareerQuestions

Four words, one book: Cracking the Coding Interview

Seriously, it’s the shit. It’s widely recommended because it’s just that good.

Keep applying, keep interviewing, keep studying. I too was worried about throwing away my chances with companies if I interview before I study enough to be 100% prepared but the fact is your first few will probably be throw aways anyway as you learn about how technical interviews go. By your third or forth you’ll be much more comfortable and there are tons of great companies out there, so worry not!

u/quantifiableNonsense · 3 pointsr/AskEngineers

Self taught professional software engineer here.

Which language you learn is not as important as learning about data structures and complexity analysis. Code organization is also very important.

Pick one high level scripting language (like Python, Ruby, Perl, etc) and one low level systems language (C, C++, Rust, etc) and learn them both inside out.

A couple of books I recommend:

  • Code Complete
  • SICP

    As far as practical skills go, you need to learn how to use git (or whatever VC system the companies you are interested in use). You need to learn how to use Unix systems. A great introduction is The UNIX Programming Environment. You need to learn how to read other peoples' code, open source projects are great for that.

    When you are getting ready to interview, there is no better resource than Cracking the Coding Interview.
u/cdimino · 3 pointsr/Python

> Write a simple decorator

Google, "write a decorator", do that.

I don't have that shit memorized, why would I? Same with "sort this thing" questions, in fact these are
exactly* the questions that get asked all the time, and they kind of suck because they test the kinds of things one can Google in an instant, and come from the flawed, "Computer Science is the degree you need to be a software developer" mindset that's effectively ruined degrees as indicators of competence for our field, which requires a performance to demonstrate competence.

/u/Darkmere has a better question, by 100x. Better versions of your questions (the flawed method of conducting interviews) can be found in any number of books, Cracking the Coding Interview is my personal favorite, because it doesn't try to claim this is a good idea, but equips you with the best form of the terrible argument.

And because I'm snarky, maybe you should add, "Format a comment properly on Reddit." to your list of interview questions.

u/xavs43 · 3 pointsr/cscareerquestions

I think you'll be okay, but you'll have to apply to a lot more than 10 companies.
Try a site like this: whoshiring.me.

Also, buy
Cracking the Coding Interview and study it hardcore.

u/itdoesntmatter13 · 3 pointsr/learnprogramming

I see that you've already taken Colt Steele's courses on Udemy. I'm guessing you can work on the front as well as the back end and work with APIs. At this point, a bootcamp is a better option imo. I'm not from the US, so I can't recommend you any. I'm assuming that you're familiar with the basics and you should definitely look into learning frameworks now. It can get overwhelming to select one amongst the plethora of available options, so pick one of the popular ones, you can't go wrong with it. ReactJS for the front end or NodeJS for the back end would be great imo (especially since you're familiar with JavaScript at this point). Udemy courses are cheap and if you follow along, you'd have multiple projects under your belt, that should definitely help you in getting a job. If time permits, you should learn auxiliary subjects, especially Algorithms and Data Structures. That would really help you in your interviews. Eventually, get that Gayle Laakmann book. So, even though you have a long road ahead of you, prioritize and focus on the parts that can get you a job in the shortest time. Maybe work on your front end skills first, get a job and work through the back end or theoretical stuff later. I'm sure you can do it if you keep at it! Good luck with everything 👍

u/scrabbledude · 3 pointsr/learnprogramming

A friend of mine who is a senior developer recommended this to me once:
http://www.amazon.com/Programming-Interviews-Exposed-Secrets-Programmer/dp/047012167X/ref=sr_1_1?s=books&ie=UTF8&qid=1319572196&sr=1-1

It covers programming questions that you may be asked.

u/legacyReasons · 3 pointsr/programming

I hate tech tests.

I worked at a company were we needed a C++ developer to work on some legacy C++ code we had. We had no C++ developers but my manager still had to scramble around for a tech test for a C++ developer.

I don't understand why there is no certification for developers. Everyone thinks their tech test is unique but they are not. I've been to many tech tests and they all cover the same crap that is not relevant to any job I've ever had. If tech test were unique books like this would not exist http://www.amazon.com/Programming-Interviews-Exposed-Secrets-Programmer/dp/047012167X/

And if I need an accountant I don't put them through a tech tests to see if they are qualified.

u/dangeloppka · 3 pointsr/pittsburgh

The New Geography of Jobs https://www.amazon.com/dp/0544028058/ref=cm_sw_r_cp_apa_YkGSzbYRKY47V

The service industry, which includes doctors, lawyers, restaurants and their staff, plumbers, carpenters, nurses, electricians, DPW workers, etc. also benefit.

u/urnbabyurn · 3 pointsr/AskSocialScience

I read in this book recently

http://www.amazon.com/gp/product/0544028058/ref=pd_lpo_sbs_dp_ss_1?pf_rd_p=1944687722&pf_rd_s=lpo-top-stripe-1&pf_rd_t=201&pf_rd_i=0143120549&pf_rd_m=ATVPDKIKX0DER&pf_rd_r=185ENY9WB6J9WYNFAWQK

That to have a growing region, you need cities which attract young and educated people. Having major universities is very helpful.

u/_Notforresale_ · 3 pointsr/Professors

I'm in the humanities (not English). However, while in graduate school, I wish someone had told me about this book: https://www.amazon.com/Professor-Essential-Guide-Turning-Ph-D/dp/0553419420. It's not perfect and some people hate it, but it's brutally honest and helpful. If you want to avoid buying the book, you could also just check out the website: http://theprofessorisin.com/.

u/sugarhoneybadger · 3 pointsr/ChronicPain

Did the ophthalmologist discuss with you the criteria for diagnosing joint hypermobility syndrome or EDS-III? Extreme myopia is actually associated with it. It sounds like people have tossed around hypermobility as possibly being related but nobody is really looking at it seriously. Is that the gist of it?

I would start reading everything you can about JHS and start implementing self-care measures, since you know you have this issue. From your past post, I think you could probably be diagnosed with it if you saw someone who was familiar with hypermobility as a pain disorder. Treating yourself as if you have it should not make things worse if the problem is actually rheumatoid arthritis.

Some resources I have found helpful:

[The Pocinki Paper] (http://www.dynakids.org/Documents/hypermobility.pdf)

The Hypermobility Handbook

These are the only two resources I can really suggest because there is so much conflicting information out there on JHS, I only feel comfortable linking to stuff written by actual physicians. But there are a lot of blogs and so forth that have stretches and pain relief techniques you can try.

u/mycroftar · 3 pointsr/ehlersdanlos

Don't be worried, be glad that you're finding out so early!

I had to figure it out for myself when I was 17. No doctor had even suggested it as a possibility. But I found the diagnosis, and doctors confirmed it. Life got a lot easier after that - having a diagnosis is fantastic.

A diagnosis is not a bad thing. It's a good thing. Nothing is different from the way it was before - the only difference is that y'all are aware of the problem now, and can take steps to make his life easier and more comfortable.

If you (or someone else close to your son) learn as much as you can, and help your son get adequate treatment, he'll be fine.

Also, this is a great book, if you can get a copy. Basically 'Ehlers-Danlos, Hypermobility, for Dummies' :) It covers almost every aspect of hypermobile EDS, how it relates to daily life, how your son can take care of himself, and how doctors can help.

u/AbaloneNacre · 3 pointsr/cscareerquestions

http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X to get the gist of things, and (surprisingly) Wikipedia to go into detail.

u/_bilbo · 3 pointsr/learnprogramming

Check out Cracking the Coding Interview. You'll find examples of many different types of problems ranging from those centered around sorting, searching, data structures, dynamic programming, you name it. The solutions for the problems are great as they often illustrate several different approaches for solving any given problem based on optimizing for speed, resource usage, development time, etc. The questions are all similar to the types of questions you'd likely come across in software engineering interviews so it's also great practice if you're looking to sharpen your skills for the job market.

u/DaBritishyankee · 3 pointsr/learnprogramming

>What did/do you find hard about learning programming? If you could be specific about things that frustrated you or roadblocks that got in your way, that would be helpful.

The hardest thing I've found about learning programming is knowing where to start. If you're trying to learn without a mentor its really hard to know what you need to learn and how. To someone inexperienced with the field, learning to program seems as simple as learning a language, but the difficult part is learning to apply that to different problems. Overall, the hardest thing to learn is something that you don't know exists. As for a specific subject, I remember finding recursion and Polymorphism hard to understand the first time I encountered them.

>Did you choose to go to an institute of higher learning for programming instead of using the free resources that are all over the net? If so, why?

I am an undergrad sophomore at Northeastern University, studying Computer Science. I chose to study computer science at university instead of using online resources, because I realized that there was a lot to learn which I couldn't find in a web page. I made the decision shortly into my Junior year of high school when I was taking AP Computer Science. I enjoyed studying the subject so much that I couldn't imaging studying anything else.

>What is something that you wish you could change about your current programming instruction?

My current programming instruction is great. I generally think that my professors are very interactive and experienced in their fields. Something I think is great is that most of my professors lecture without computers. They write code on the board, which gives them much more freedom to move about and ask questions, and it makes that classes interesting. I also think it removes the focus from the language being used and places it on the theory, which is the important part.

>Do you look for career preparation or support? If so, what have you been looking at or what resources do you use? To clarify - I mean interview help, prep questions, advice, etc...about preparing to enter the field.

One of Northeastern's greatest tools is its coop program. Typically students graduate in 5 years with 1.5 years of working experience over three 6-month coops. In preparation of this, I had to take a class to prepare me for applying to companies. The experience was amazing. The advising department brought in employers and other students to talk to us and do mock interviews. As someone looking for their first "real" job, this is invaluable. Technical questions are an important part of the application process, but for entry level programming jobs they aren't too difficult. I've heard that http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X is a great resource.

>For those of you still in school/learning - do you worry about how you will find a job programming? What concerns do you have?

Nope, already got my first job in the field. From my experience over the past semester of interviewing, it you're excited about the field and have a reasonable ability to program, you can find a job somewhere (especially if you live in a city.)

>If you're out of school and in the workforce - do you ever worry about how you will move forward in your career?

Not there yet.

>Does your place of employment (you don't have to tell me who) provide you with feedback or a clear path to advancement? Tell me about your concerns here.

Not there yet.

u/bluerosebud · 3 pointsr/OSUOnlineCS

In addition to the two reddits /u/monkish2002 suggested, I really liked Cracking The Coding Interview for help working though those problems. Interviewing is a skill, just like programming.

u/asdfman123 · 3 pointsr/financialindependence

I took a few CS classes in high school and two in college, and then took post-bacc classes in computer science because I thought I needed to get a master's in it. I was wrong. A CS degree teaches basic coding skills, and then a lot of theory which is basically inapplicable, or barely applicable, to a programming career. I didn't need to know 90% of what I learned.

If you want to make sure you're well rounded and ready for an interview, read something like this and learn everything in it. Work on a few decent sized projects on your own time. Maybe read classics like The Art of Computer Programming by Knuth. Even if you just master the concepts in the first book you'll probably be ahead of 75% of CS graduates in terms of career skills.

u/jb567 · 3 pointsr/cscareerquestions

well, since no one has said it yet Cracking the coding interview is a great resource for learning the stuff you'd be tested on.

Over summer, for a project it doesn't have to be amazingly unique, just something you're interested in.

If you have some free time learning a functional language like Haskell really helps learn a different side of programming than the traditional imperative/objective norm.

u/29624 · 3 pointsr/SeattleWA

Are you absolutely sure its your age? If you haven't already have someone else look at your resume and checkout Cracking the Coding Interview.

u/Maximillionnn · 3 pointsr/iOSProgramming

A lot of people are answering if knowing data structures is useful.

To actually answer your question, you will need to know data structures and algorithms for the larger tech companies like Facebook, Apple, Amazon, Netflix and Google (FAANG). Smaller companies will focus less on those academic things, and focus more on what projects you can actually make.

Cracking the Coding Interview is the seminal book on these types of interviews.

u/Uwaterloo123-_- · 3 pointsr/uwaterloo

hmm... As for me, i saw a lot of tech companies requiring the knowledge of c++, java and front-end development.
You could also learn either iOS development or Android development.
You definitely need to learn git.

Try "TeamTreeHouse" for 2-3 months, they have a lot of stuff there. Try some of the courses and then create some projects and put them on github to later on add to your resume.

And also, during interview when they give you some technical questions, you need to be ready for them.
https://www.amazon.ca/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

Here is the good book for it.


GOod luck :)
Try to find a job and if you dont, try to learn as much as you can during this summer :)

u/tmoss726 · 3 pointsr/cscareerquestions

Cracking the Coding Interview: 150 Programming Questions and Solutions https://www.amazon.com/dp/098478280X/ref=cm_sw_r_awd_rMtJub1AZ0C4F great book. Has examples too

u/SeanNoxious · 3 pointsr/learnprogramming

I have done a lot of interview prep in the past but would always be interested in keeping my skills sharp. I highly recommend this book it's really the most comprehensive text you can get for any generic coding interview. I am interested in learning but if there is anything I can do to contribute, I would be happy too as well.


u/rispe · 3 pointsr/javascript

Congratulations! That's a big step. Be proud that you were able to make the switch. Not many people manage to transform ideas into results.

I think there are four areas on which you need to focus, in order to go from mediocre to great. Those areas are:

  1. Theoretical foundation.
  2. Working knowledge.
  3. Software engineering practices.
  4. Soft skills.

    Now, these areas don't include things like marketing yourself or building valuable relationships with coworkers or your local programming community. I see those as being separate from being great at what you do. However, they're at least as influential in creating a successful and long-lasting career.

    Let's take a look at what you can do to improve yourself in those four areas. I'll also suggest some resources.

    ​

    1. Theoretical foundation

    Foundational computer science. Most developers without a formal degree have some knowledge gaps here. I suggest taking a MOOC to remediate this. After that, you could potentially take a look at improving your data structures and algorithms knowledge.

  • CS50: Introduction to Computer Science
  • Grokking Algorithms
  • Algorithms by Sedgewick

    ​

    2. Working knowledge.

    I'd suggest doing a JavaScript deep-dive before focusing on your stack. I prefer screencasts and video courses for this, but there are also plenty of books available. After that, focus on the specific frameworks that you're using. While you're doing front-end work, I also suggest you to explore the back-end.

    ​

  • FunFunFunction on Youtube
  • You Don't Know JS
  • JavaScript Allonge
  • JavaScript Design Patterns

    3. Software engineering practices.

    Design patterns and development methodologies. Read up about testing, agile, XP, and other things about how good software is developed. You could do this by reading the 'Big Books' in software, like Code Complete 2 or the Pragmatic Programmer, in your downtime. Or, if you can't be bothered, just read different blog posts/Wikipedia articles.

    ​

    4. Soft skills.

  1. Actively seek to mentor and teach others (perhaps an intern at work, or someone at a local tech community, or create blog posts or videos online).
  2. Get mentorship and learn from others. Could be at work, or open source.
  3. Go to programming meetups.
  4. Try public speaking, go to a Toast Masters meetup.
  5. Learn more about and practice effective communication.
  6. Learn more about business and the domain that you're working in at your company.
  7. Read Soft Skills or Passionate Programmer for more tips.

    ​

    Some closing notes:

    - For your 'how to get started with open source' question, see FirstTimersOnly.

    - If you can't be bothered to read or do large online courses, or just want a structured path to follow, subscribe to FrontendMasters and go through their 'Learning Paths'.

    - 4, combined with building relationships and marketing yourself, is what will truly differentiate you from a lot of other programmers.

    ​

    Sorry for the long post, and good luck! :)
u/Jakewca · 3 pointsr/GetStudying

There are drugs that can help with specific problems but not everything.
If you have the chance, I'd recommend three books for meta-learning:

u/qwicksilfer · 3 pointsr/personalfinance

My favorites are:

  • "The Money Book for the Young, Fabulous, and Broke" by Suze Orman link
  • "All Your Worth" by Elizabeth Warren link
  • "Personal Finance for Dummies" by Eric Tyson link
  • "Personal Finance at your Fingertips" by Ken Little link
u/ntide · 3 pointsr/cscareerquestions

It does look like spam. Sorry.

I did not buy the course, but I've watched a few of his videos on YouTube. His thesis is to think of your career as a business, and to learn how to market yourself so that work comes to you, not the other way around. Pretty insightful stuff.

Irregardless, $299 is way overpriced. You can find the same advice in Chad Fowler's The Passionate Programmer.

u/haloshade · 3 pointsr/booksuggestions

Doing Good Better by William MacAskill is a book all about how to use your time and money to do the most good. It's a practical book written by a pragmatic writer who was one of the forerunners of the effective altruism movement.

It's a must read in my opinion.

u/WeGotCactus · 3 pointsr/financialindependence

I'm in a similar situation and stand to gain multiples of what I'd need to retire 30 years ahead of schedule in the next few years. I strongly recommend looking into "effective altruism." If you only "like" your job, maybe you and her would find more satisfaction in figuring out how to maximize your positive impact on the world. Start with this book:

https://www.amazon.com/Doing-Good-Better-Effective-Altruism/dp/1592409660

I'd absolutely not continue working my current job if my current job didn't bring me a huge amount of fulfillment or was otherwise my highest and best use of time to "do good" in the world.

Take a year off to read, think, ponder, and then re-engage on your own terms in a thoughtful way. At least that's my plan.

As far as social pressure, I will continue to appear to be a productive member of society, be on various boards, have projects, volunteer, etc. As far as our friend group goes, they don't need to know the specifics of my situation. Social pressure solved.

u/Lemmiwinks_NO · 2 pointsr/productivity

Great book for focused working and learning -> Pragmatic Thinking and Learning. Geared a bit towards software developers but works for anyone.

u/shipshipship · 2 pointsr/cscareerquestions

If I was to make a guess, it is that your problem is not your technical skills. You can be the best programmer in the world, but if there are behavioral or cultural red flags you can have huge problems finding a job. What does a Google search for you turn up? How do you act in interviews? How are you to interact with? Those kind of things. A good starting point for addressing these issues is Land the Tech Job You Love. For general career development I have enjoyed The Passionate Programmer personally.

u/UmamiTofu · 2 pointsr/askphilosophy

If you have the right intentions and pay attention to evidence then you can make the world better in expectation. We're never entirely sure what the consequences of our actions are, but we can find things which are probably much better than doing nothing. This is a good book on the subject.

u/CaRDiaK · 2 pointsr/dotnet

Working in Legacy one of the areas you can make an impact on a system. Bar none. You can pretty much refactor until your hearts content, you can make wrappers to old calls in new fancy ways, cook up solutions to problems you've identified and present these to your colleagues. Because that's what good developers do..

It's rare you get to work on exactly what you want to all the time in this game.

So what are your alternatives now?

To be honest I do think you have made a mistake. But an important one. If you learn from it, then that's all good and you shouldn't worry about it.

Sometimes you'll learn people don't know why things are a good idea or a better option... you've got to steer them and let them think it's them that's making the decision on something great, when really, that was your plan all along.

You know where you get the real money and make the real difference in our game? Working at either end of the spectrum. Either bleeding edge, or with tech so old no one else wants to touch it. If you want the middle ground, the easy predictable stuff then be prepared to not be making much of a difference in your day to day duties. It's just the way the game works.

Suggested reading; The Passionate Programmer;http://www.amazon.com/The-Passionate-Programmer-Remarkable-Development/dp/1934356344

Apprenticeship Patterns; http://chimera.labs.oreilly.com/books/1234000001813/index.html

Best thing to do is put a period in it and move on.
Good luck!

u/ThereIsNoJustice · 2 pointsr/IWantToLearn

Pragmatic thinking and learning

Talent is Overrated

The first book explains the Dreyfus learning model. It builds off that with other models of learning like the sports model, chess model, and writing model. The authors explain the different ways you should learn for the different type of activity you're involved in. E.g. for chess, you study the moves the masters would make, compare it with the move you would make -- figure out why the chess master made his move, why you made yours, and which is really better.

The second book basically breaks the myth of talent, as its title implies. And it isn't just hard work or a lot of work that separates the knowledgeable or skilled from the unknowledgeable or unskilled. It's intentionally designed deliberate practice which makes the difference. The practice or learning you do has to have these characteristics to show considerable improvement:

  1. It's designed specifically to improve performance.
  2. It can be repeated a lot.
  3. Feedback is continuously available and readable. (You know how well you're doing)
  4. It is demanding.

    These ideas have a wide application, and if you're serious about learning or acquiring new skills you will definitely find them valuable.

    Lastly, check out something like Anki, a free spaced repetition tool. It basically reminds you of things you're about to forget, so you don't forget them. But you do have to actually use the program to get its benefits.

    Oh, and make some oaths and principles so you don't just give up on this stuff. Temporary setbacks are all part of the gameplan -- but complete failure is not. Example oath here

u/mathiverse · 2 pointsr/cscareerquestions

Check this book out: http://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050

Also there is a class called learning how to learn on Coursera which can be helpful.

u/smallfingers · 2 pointsr/LaunchCodeCS50x

Pragmatic Thinking and Learning: Refactor Your Wetware

This is an awesome book that covers this topic pretty well. I re-read every once in a while o give myself a refresher. It's really great and is applicable outside of CS as well.

u/neckbeardface · 2 pointsr/AcademicPsychology

Competitive GPAs really depend on the program. 3.0 is usually the absolute bare minimum. Our program rarely considers anyone below a 3.5 and 3.7+ is standard. However, keep in mind that GPA is a small component of a competitive application. I wouldn't consider someone without other relevant experience even if they had a 4.0.

CV is a curriculum vita. It's basically a long resume that includes all of you academic experience/achievements. You add to it throughout your education/career.

Yes, I realize club sports are different than NCAA but that really doesn't matter as far as your application. Your research experience, interests, and research match are much more important.

If you are interested in applying to clinical psychology phd program I'd highly recommend getting this book: http://www.amazon.com/Insiders-Graduate-Programs-Counseling-Psychology/dp/1609189329

u/escapevelocity11 · 2 pointsr/psychology

Well, I just got accepted to the clinical psychology doctoral program at Texas Tech to work with Dr. Joaquin Borrego. I'm interested in PCIT (parent-child interaction therapy) and it's applications for children with autism. So I sort of understand where you're coming from. Have you considered applied behavior analysis, if you're seriously interested in autism? I plan on completing enough coursework within the ABA program at TTU that I can still obtain my BCBA (and maybe my BCBA-D) while still taking the clinical psychology coursework. Fortunately my mentor has a background in clinical behavior analysis so that works well for me.

All of the professors I worked with while in undergrad (at WVU, a research I school) highly suggested I go straight into a PhD program rather than obtaining my masters degree first. This was mostly because I was completely uninterested in wasting 2 years and tens of thousands of dollars just to have to go back and complete a lot of the same coursework for my PhD.

I highly suggest the Insiders Guide to Clinical and Counseling Psychology (http://www.amazon.com/Insiders-Graduate-Programs-Counseling-Psychology/dp/1609189329/ref=sr_1_1?s=books&ie=UTF8&qid=1369282225&sr=1-1&keywords=insiders+guide+to+graduate+programs+in+clinical+and+counseling+psychology+2013) as a reference. It gives lots of details regarding what sorts of research is being conducted at universities all over the US.

Hope this helped a little!

u/LlamaLlama_Duck · 2 pointsr/AcademicPsychology

I would also recommend checking out the book Insider's Guide to Graduate Programs in Clinical and Counseling Psychology to help you get more information. This book will describe differences between PsyD and related programs and will provide the average GPAs of different programs so you can get a sense of what to shoot for. In addition, there is also a nice section toward the beginning of the book that describes what programs are looking for in addition to good GPAs and GRE scores. It's not just about getting good grades, so if you decide you want to go for a psych major, you will want to know what else to do besides doing well in psych classes. Good luck!

u/bigjoshhhhhhhhh · 2 pointsr/personalfinance

I was in your position a while back, and this book did a great job of helping me start making sense of personal finance. From there, I went down a rabbit hole of reading pretty much everything from the PF reading list.

u/Zankreay · 2 pointsr/Buddhism

The point is that if you buy that product, they will order more. Not 100% of the moeny goes to the slaughter house or the farm, obviously, but if you buy it it increases demand and they will restock more.

To quote Will MacAskill's Doing Good Better!

>[page 87]
"On many issues, I find that people hold the following two views:
If many people did this thing, then change would happen.
But any individual person doesn't make a difference.
Holding that combination of views is usually a mistake when we consider expected value.
Consider ethical consumption, like switching to fair-trade coffee, or reducing how much meat you buy. Suppose someone stops buying chicken breasts, instead choosing vegetarian options, in order to reduce the amount of animal suffering on factory farms. Does that person make a difference? You might think not. If one person decides against buying chicken breast one day but the rest of the meat eaters on the planet continue to buy chicken, how could that possibly affect how many chickens are killed for human consumptions? When a supermarket decides how much chicken to buy, they don't care that one fewer breast was purchased on a given day. However, if thousands or millions of people stopped buying chicken breasts, the number of chickens raised for food would decrease-- supply would fall to meet demand. But then we're left with a paradox: individuals can't make a difference, but millions of individuals do. But the actions of millions of people are just the sum of the actions of many individual people. Moreover, an iron law of economics is that, in a well-functioning market, if demand for a product decreases, the quantity of the product that's supplied decreases. How, then, can we reconcile these thoughts?
The answer lies with expected value. If you decline to buy some chicken breast, then most of the time you'll make no difference: the supermarket will buy the same amount of chicken in the future. Sometimes, however, you will make a difference. Occasionally, the manager of the store will assess the number of chicken breasts bought by consumers and decide to decrease their intake of stock, even thought they wouldn't have done so had the number of chicken breasts bought been one higher. (Perhaps they follow a rule like: "If fewer than five thousand chicken breasts were bought this month, decrease stock intake.") And when that manager does decide to decrease their stock intake, they will decrease stock by a large amount. Perhaps your decision against purchasing chicken breast will have an effort on the supermarket only one in a thousand times, but in that one time, the store manager will decide to purchase approximately one thousand fewer chicken breasts.
This isn't just a theoretical argument. Economists have studied this issue and worked out how, on average, a consumer affects the number of animal products supplied by declining to buy that product. They estimate that, on average, if you give up one egg, total production ultimately falls by 0.91 eggs; if you give up one gallon of milk, total production falls by 0.56 gallons. Other products are somewhere in between: economists estimate that if you give up one pound of beef, beef production falls by 0.68 pounds; if you give up one pound of pork, production ultimately falls by 0.74 pounds; if you give up one pound of chicken, production ultimately falls by 0.76 pounds."

The point is that by continuing to purchase it it is keeping up demand. Where exactly each dollar you spend goes is besides the point.

u/eliotman · 2 pointsr/UKPersonalFinance

There is a lot of work being done in this area at the moment.

Here's a good book to read on the subject:-

https://www.amazon.com/Doing-Good-Better-Effective-Altruism/dp/1592409660

Or a video by the same chap...

https://www.youtube.com/watch?v=Qslo4-DpzPs

And their work...

http://www.givewell.org/

It's an argument for utilitarianism ultimately, and if you believe that's the way to go, then just go with their current best pick.

https://www.againstmalaria.com/

u/UniqueUserName2015 · 2 pointsr/malelifestyle
u/rem87062597 · 2 pointsr/homestead

I'm a CS major that got an internship in college that turned into a full time position after college, then I used that to jump into an engineering firm in my field with the stipulation that I'd be a 100% remote employee. 100% remote work is really hard to get, there's jobs out there but they tend to be extremely competitive. I only got this job because my particular specialty (GIS) is pretty tight-knit and I knew some people who knew some people so I had great references. Granted, I still had to prove myself on my own merits in the interview, but having a network definitely helped. Basically I applied to a non-remote job and wrote on the application that I'd only consider remote work, they took a chance on it, and it worked out.

I can't say much on being self taught or finding a job after being self taught but if you know your stuff you'll be competitive regardless of the degree. If you know your programming languages inside and out and you can answer the questions in this book you'll get hired somewhere as long as you're a good fit. Remote might be harder and it involves a bit of luck, but I wouldn't expect getting that for your first programming job. In my experience people tend to want proof that you can be productive at a previous employer before they'll consider letting you work essentially unsupervised.

Salary went from $12/hour as an intern to $45k/year as a full time on-site contractor at state government to $63k in my current position (I graduated Spring 2014). I could make more elsewhere, especially if I lived closer to a city with multiple firms and I was willing to go into the office, but I'm super happy in my current job.

u/Godbutt · 2 pointsr/badeconomics

Oh no you misunderstand, all code is shit code, hence the "like the rest of us" part. Anyway, back end work is easily the most popular and easiest to get into so I wouldn't worry too much about getting stuck doing UI development.

My advice is do try and figure out at least some idea as to what you want to do or where you want to be because the nice thing about the programming world is jobs are plenty, but it's usually CRUD all the way down. Obviously that's the usual advice but you have time so do that now as opposed to later.

If you think you want to dick around in the lower level world which sort of leads to embedded systems, start with writing a dynamic (meaning malloc) linked list in C with void and function pointers since that ensures you know what a pointer is and is a common enough data structure that you've probably already covered it as a sophomore. You could do something else but list questions come up sometimes and are used a lot. Next would be knowing your bit operations and some basic things to do with them, mainly masking. A question I've seen is to do bit packing so like given two 4 byte numbers put them into a single 8 byte number and then get those two numbers out.

That's enough to at least stand out at an interview, especially at a sophomore level for an internship. Actual embedded systems work/experience puts you in a weird spot since pulling out an arduino and lighting LEDs up is neat, but when it comes to the shit show that is security, real time responses, ISRs, drivers, multi-threaded programs, and whatever else comes up software side, it's just hard to get without having something to do it on and side projects are meant to be fun projects, not that. That said, if you want to look like a baller, get some early experience with multi-threaded programming in something like C with pthreads. Then knowing what an ISR is and how it works is good shit too.

However if you're looking at back end work, that requires a bit less specific knowledge as a lot of it is CRUD app data plumbing so much of what you learn is already applicable. Basic data structures will likely be the most important. So know how an array, list, tree, hash table/map, queue, stack, graphs, and how a list of lists of lists works as multi-dimensional data structures are a near constant. A few of those are rare (like trees) in actual "I'm writing some code and need to use something" code, but they come up and don't require a burden to know.

The next thing would be the basic questions like reversing a string or fizzbuzz as those come up a lot for new people. How quicksort works might too but that was always a stupid question so I hope nobody asks it of you, but they might so have some idea of how it works and be able to make a reasonable attempt at it (I'm lucky in that I don't have to anymore). This book has a lot of decent-ish general questions. I do dislike some of it's more esoteric exercises but that comes out of my own disappointment over people being unable to use if's properly, let alone answering questions in that book. Regardless it'd be handy for you to thumb through.

I'm tired so I'm probably forgetting things. My one last thing would be use some kind of version control as you should be doing that anyway, and if you end up at an interview you can ask them what kind of version control they use, and if they say we don't, thank them for their time and just get out. If they say subversion treat it as slightly better than not having one but assume it's also hell.

u/kaisercake · 2 pointsr/computerscience

Current industry professional and interviewer. Just got out of one in fact.

Certs won't do much for you. I know some interviewers who actually look down on people who get certs. I personally don't care at all if you see them. Chances are, I don't know enough about the process to get that specific certification to give it proper weight. Did it take a few hours of training? Several weeks? Years of experience? I'm not going to look that up when I have work to do along with better things to grill you on for your resume.

Speaking of those better things: Projects and internships. Projects done OUT OF ASSIGNED CLASS WORK are always more valuable than just showing off that you can do assignments. Everyone will also push the importance of internships. They're great. They show that you know how to work on a team in complicated systems with a different set of demands and people.

School in NY? I'm an RPI grad. Transferred in from HVCC. Big roadblock you won't hear about is how big company interviewers typically completely disregard your CC experience. They didn't care about my 4.0 there.

"Okay, but what's your GPA here?"

In a field/school where many people get internships after their sophomore year, it puts us at a big disadvantage, especially for the schools who do job fairs during your first semester. You won't have a GPA you can tout there. Several online applications require your 4 year university GPA. Doing a 2-3 program will slightly alleviate the issue...but now you graduate a year later. There's a myriad of hidden problems no one will tell you about because they're too busy pushing positives. Also, it's more complicated than just "being a sophomore" again. Feel free to PM me, I wrestled way too much with my administration while I was there.

You'll have some challenges ahead. But two things will help your resume immensely:

  • INTERNSHIP At least if you can get one.

  • Does the school have an open source program you can do for "research?" We had RCOS, a two hour a week class you could do for credit or research. It helps you fill out your resume with interesting and more complicated projects that aren't assigned.

  • Portfolio What good is all this if you can't show off your work? Make a GitHub. We Look.

  • Interview skills. Maybe not on the resume directly, but you need to be able to sell yourself. Practice an elevator pitch for job fairs. Practice doing interview questions. Cracking the Coding Interview is a great resource to see what to expect from us.
u/sun_tzu_vs_srs · 2 pointsr/UofT

As far as courses go just take the math-oriented ones like algos and data structures seriously. It's about developing your problem solving ability more than anything. Strong problem solver, strong interviews. Also developing an intuitive understanding of complexity and problem classes will help you to think clearly.

For interview-specific stuff courses won't help you. Pick up Cracking the Coding Interview and Elements of Programming Interviews. The latter used to be called Algorithms for Interviews which is also good.

Protip: last time I checked all these books were available through Safari Books Online, which most university libraries give you access to for free.

u/cheeekyslug · 2 pointsr/UCSC

Here's my two cents.

Other things to consider: I'm a girl, minority, and have a mental "disability" (diagnosed anxiety and depression). These all come into play when you do apply for tech jobs in some ways.

I was a MCD Biology major last year but switched when UCSF Admissions told me that getting into med school is an honest crapshoot. I literally switched to CE during the summer. It was a pain to switch but it's working out.

Right now I'm taking 29 units, 15 units here and 14 units at another school. The only class I've taken so far that is CS related is CMPS 12A/L in the summer at a CC where I aced it and the professor really liked me. And CMPS 12A/L isn't even part of the CE program.

You know what you should do today? Make a resume. Right now. Already have one? Apply to internships. Right now. Making a LinkedIn also helps so much.

I applied from August - November to 100 companies and got denied to 20 already (Uber, Asana, TwoSigma, Pinterest, some video game companies) but already have 5 offers on the line with offers from $25-40 an hour with other frills like free food and corporate housing. This last end of the quarter I've been getting scheduled for phone interviews, technical tests, on-sites.

This is with one CS class too. Most companies don't look at transcripts or references and all they look for is project work (which I don't have either) and talent. I studied my ass off with this book and have learned so much on how to tackle interviews.

SOE literally thinks I'm silly, but I probably have done more in terms of networking than some Senior CS major. I also still have a pre-med mentality which helps.

TLDR What I'm saying is that even if you don't have a lot on your belt, people see talent easily. Be persistent and optimistic.

I have a personal list of applications if you want them, PM me. Will not disclose to everyone though because this place is already competitive enough.



u/Coneylake · 2 pointsr/jobs

I think you already have a good outline. Look at this book: http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X.

I'm sure you can find a pdf of it somewhere. ;)

u/gladimdim · 2 pointsr/FlutterDev

Quote from the book: https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

"Imagine you have a call center with three levels of employees: respondent, manager, and director. An incoming telephone call must be first allocated to a respondent who is free. If the respondent can't handle the call, he or she must escalate the call to a manager. If the manager is not free or not able to handle it, then the call should be escalated to a director. Design the classes and data structures for this problem. Implement
a method dispatchCall() which assigns a call to the first available employee"

​

+ UI in Flutter

u/duuuh · 2 pointsr/cscareerquestions

It's good that you know what the feedback was.

I'd practice doing some 'whiteboard coding' problems and maybe work your way through this or something like it.

https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

Some of this kind of stuff is just practice.

u/objectdisoriented · 2 pointsr/learnprogramming

Khan has a great primer in CS: https://www.khanacademy.org/science/computer-science

Also, there is a book about programming interview questions that can be useful in going over some common CS problems: http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

u/hardleaningwork · 2 pointsr/learnprogramming

http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X/ref=sr_1_1?s=books&ie=UTF8&qid=1347642233&sr=1-1&keywords=cracking+the+coding

I usually don't recommend books for this kind of thing, but that book is exceptional for refreshing your knowledge and anticipating questions.

u/minhaz1 · 2 pointsr/javahelp

If it's for interviews, I highly recommend reading Cracking The Coding Interview.

u/ihave2kittens · 2 pointsr/ProductManagement

Read cracking the pm interview.

Cracking the PM Interview: How to Land a Product Manager Job in Technology https://www.amazon.com/dp/0984782818/ref=cm_sw_r_cp_api_HAdBzb02F7VZV

u/rhc2104 · 2 pointsr/startups

Cracking the PM Interview is a pretty good resource: http://www.amazon.com/Cracking-PM-Interview-Product-Technology/dp/0984782818

u/Fofox · 2 pointsr/france

En parlant d'entretien tech, je vous recommande ce livre : https://www.amazon.fr/Cracking-Coding-Interview-6th-Programming/dp/0984782850/ref=dp_ob_title_bk

Il convient aussi bien à un chercheur d'emploi qu'a un recruteur en mal de questions.

u/bonekeeper · 2 pointsr/cscareerquestions

I looked at the FreeCodeCamp curriculum, it looks good for an entry level javascript developer, so since you already started it, you might as well finish it (since, like I said, everybody implicitly expects you to know at least one of python/js/perl as well as HTML+CSS).

2 hours per day is a bit too little IMO - but I understand that it's hard to find time when you have a demanding job and a family that needs time and attention. Just study as much as you can, 2h being the mininum (do keep in mind that CS students, your competition, will be studying at least 8h/day for at least 4 years with tons of homework and more advanced material). So you should probably focus on studying more in the weekends (just typing and thinking about this, I'm actually lucky I started when I was a kid, with all my bills paid for!)

Anyways. You should focus on getting a job first - do keep doing the FreeCodeCamp, as many hours in the day and weekends as you can. Explain to your significant other, if you haven't already done so, your plan - that you're studying hard to upgrade your career, that it might take some time away from them but it will pay off in the long run, etc. Ideally you should be studying at least 4h/day, so try to keep close to that, study more on weekends if necessary. Check this guy for reference on his plan and what he's studying (and note that he's studying full-time - a luxury, I know, but just to put your 2h/day into perspective). This guide is helpful too. Note that you don't need to know all that to get an entry-level development job, but keep that plan in mind for the long run (as you progress your career).

Once you finish the FreeCodeCamp, or even before (I would say, once you finish "Basic Algorithm Scripting"), try doing some local interviews if you can do it without jeopardizing your current job just to get a feel of how interviews work. You won't be trying to get a job (but hey, if you do, awesome), this is just to get your feet wet on interviewing (which is a skill in itself). Since you're not shooting to get a job right now, you won't be as nervous, which is the state of mind you want to be in. If you're relaxed you can talk better, think better, make jokes, be more presentable, which is great - this will put you in the right mood for your future interviews. Try finding people online that can do mock interviews with you in the area you will be focusing on (web/javascript/frontend initially).

Once you're past the basic HTML/CSS part and you start studying JavaScript, I suggest you look into Python as well at the same time. It is a very simple language, quick to learn, and will double your opportunities for employment. As you study both at the same time, you might notice that you like one or the other better - if that happens, focus more on the one you like better, this will accelerate your learning and get you ready for a job faster in your chosen language.

At one point you'll finish HTML/CSS and JavaScript+Python (finish as in be comfortable with them - you'll see that you'll still learn new things as years go by, it will take a few years for you to "master" them). After you're comfortable with JavaScript and Python (and hopefully gainfully employed in development), start studying that book (where you'll learn a GREAT deal about many important things, it will be a dense read, and you will come out of it knowing assembly and C) and then you can focus on algorithms and exercising your thinking with algorithmic puzzles and how computer networks work, operating systems and everything that is generally on this list.

Then after studying all that and with 2-4 years of experience under your belt (and still studying 4h/day), you can start thinking about the next level in your career and preparing for it (larger companies, mid to senior positions, etc) - add a couple more years of experience and you'll be ready to interview for large Valley companies (Google, Apple, FB, etc).

If you plan to self-study all the way through and never join an University, you can look into full-fledged CS courses online and follow that to get a complete theoretical background on CS (that all your colleagues will eventually have and expect of you, at some point in the future).

u/exodeos · 2 pointsr/vancouver

Sorry to hear about your situation. I'm not sure on the focus of Infomatics, but by the sounds of your post you are well equipped and looking for a programming (web dev) job. So I'll focus on the job part because realistically it's the only thing I feel I have any (possibly) useful advice for. I'm sorry to hear you haven't found a job yet. But you are quite fortunately (unless I mis-read what you want) looking in one of the most in demand, albeit competitive industries around.

So here is my (hopefully semi-useful) advice. Most are things that I was told to do when interviewing that I thought helped me quite a bit. I hope they help you too. You may be doing all of this already so I am sorry if it is obvious things you've been doing.

I strongly recommend buying this book if you can. Read it cover to cover and do as many of the exercises as you can.

https://www.amazon.ca/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=dp_ob_title_bk

Next I recommend applying to any and all tech companies you can find, it doesn't matter if they are asking for a specific framework or language or more experience than you have. A lot of people are put off by the 2 to 3 years in x that most postings have. Usually they just care that you have some experience and seem smart enough to learn. The fact that you have side projects is a giant plus for you, they love seeing that.

These sites are great ways to practice for interview questions:
https://www.hackerrank.com/
https://leetcode.com/

Doing these questions really help with interview questions in my opinion.

From there just cycle, continue to read the book, apply to as many places as you can, do practice problems. Work on your own side projects, the experience gained from them is extremely important.

If you have any public repos on github clean them up. If you do not, register for an account and put your personal projects on some (if you can). That way you can start to include the account on your CV. (If you aren't already)

Practice explaining your projects (what you did and why) and try to think of the questions they could ask you.

In terms of financials/housing/immediate work, I would look at moving out of the downtown core and try to find a basement suite or something affordable. Maybe try to get a roommate. I would try to find a job (starbucks, best buy, london drugs, etc) to support yourself in the short term. If you have a friend that might be willing to let you stay with them while you find a place talk to them now, and let them know the situation. That will help them prepare for you if you can't find a job/place.

Also, don't be afraid to post your resume to subreddits that focus on that sort of thing (remove all personal info!) or feel free to pm me yours and I will be more than happy to try to provide some constructive criticism.

Sorry for the book, I hope at least some of it was useful to you.
Also sorry for the grammar/spelling/shitty writing style I am a programmer, but not a good writer.


u/mundred · 2 pointsr/OSU

If you get high marks (3.7+) it's not really that hard to get an internship as a freshman. Just be prepared to deal with a ton of reject. But you will get one. Doing your own projects is the real winner, but if you are sufficiently charismatic you can talk your way into research or take some project based courses at ACCAD. Obviously don't bullshit--just show off how passionate you and that you can learn (nobody expects you to already know). I did the research route but a friend of mine went ACCAD and got a much better internship than I did.

If you are planning on going for one of the very selective internships (Google freshman engineering practicum/Microsoft explorer etc) then you should probably buy yourself a copy of Cracking the Coding Interview and just do them all. High rank on TopCoder will also help. Go to a lot of hackathons if you want to get really into the tech atmosphere (but you may just not like it that much).

u/rdguez · 2 pointsr/algorithms

There’s a book called Grokkin Algorithms, which illustrates some of those concepts quickly. I also liked another book called Cracking the Code Interview.

u/stephanimal · 2 pointsr/gamedev

Practical interviews are pretty much the norm across software development.

Generally they open with some standard interview questions, then move into programming problems.
These problems (ideally) are designed to show the interviewer how you think and solve problems,
while demonstrating some familiarity with the language you are using.

For example, I might give you this function stub:

String ReverseString(String InString)
{
}

and ask you to write the function body that reverses the contents of InString and returns it as a new string.
After you are done writing the function, I might ask you to determine the time and space complexity of your solution.
If your solution is not optimal in space or time, I might ask you leading questions about how we might improve either
the time complexity or space complexity, and see if you can iterate and improve your solution.
If it was optimal, I'd probably move on to something tougher.

The whole time, I'm most interested in how you think and I'm not focused on your end result as much. So don't take the paper away and quietly formulate a solution and pass it to me. It should be fairly interactive, and you should narrate your thought process if you feel comfortable doing so.

If you want more example of the problems you will have to solve, a generic reference text is:
http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850?ie=UTF8&*Version*=1&*entries*=0

Keep in mind though, since its a Unity interview, its likely they will ask game specific questions, basic linear algebra is going to help you out a lot here (dot, cross, basic reasoning about vectors, normals, etc).

Also your mileage may vary, as I'm basing this off of interviews I have either given or been given.
Good luck!

u/Cracklings · 2 pointsr/csharp

This is just my 2 cents, but the first thing you should be asking when learning any language is what problem are you trying to solve with the language?

C# as a language doesn't amount to anything, but it's real potential comes from the frameworks it is associated with.

​

If you're wanting to:

web develop then you would need to look into .NET Core + WebApi + MVC or a front-end framework (Angular, React, Vue).

This is a great course to get you started with. It'll create a basic web application you can modify and play around with from the database to the front-end:

https://www.pluralsight.com/courses/aspdotnetcore-efcore-bootstrap-angular-web-app

​

desktop development then look at Wpf (window presentation forms) or use electron and c#

mobile development then take a look at xamarin

​

from your use of Unity though, it seems as if you are more into game development which I would advise then to go a bit lower and really learn algorithms and good implementations. For this, there are some greats books you can use to help you get started:

Cracking the Coding Interview: 189 Programming Questions and Solutions by Gayle Laakman - Even though this is an interview book it's a great intermediate book to algorithms. The book does assume you have a basic understanding of elementary data structures.

The Algorithm Design Manual by Steven Skiena - This is definitely more advanced and heavy but it's a great book to really dig down into the nitty gritty

A great website for practicing writing algorithms in c# is leetcode.com. It's a site that basically lists a bunch of small questions you can solve with an in browser compiler that includes c#. This way you wouldn't need to download visual studio to practice coding.

if you're up for the challenege, then you can download a framework like SFML.Net and try to develop a game from the ground-up without using an engine like unity. But this is obviously a lot of work ;)

​

Overall it's hard to give really specific advice without knowing where you're trying to head. But it's a good time to get into c# and in general microsoft's development stack. In the past people were shoe horned into using microsoft's technology stack from top to bottom but recently microsoft has made a lot of stride in making there tech more open which is making a lot of people turn heads.


If you are also looking for a more lite-weight ide then I recommend visual studio code or vscodium which is the same but without the trackers :)

u/redditroundtwo · 2 pointsr/financialindependence

Cracking the coding interview is a pretty great book too. But you do need the basics of algos and data structures down before you jump into it.

u/endurotech · 2 pointsr/cscareerquestions

> Practice with interviewing, practice at coding (at least with DS+A), blah blah blah.

I recently graduated from a four-year university, but I am currently working these things as well. My college career didn't prepare me too well for software engineering (I chose to study CE instead of CS, curriculum could have been better). For practicing at coding the only thing I can or sure suggest is to brush up on your algorithmic skills and knowledge of data structures, get exposed to as many coding problems as possible, and get exposed to more than one language. You say you know Javascript, you may want to diversify yourself by learning Java or C++.

As for interviews, I just came back from a mock interview (I already had an on-site interview with them but did not get the offer). You may know this already but your answers to questions should say some desirable quality or trait about yourself. [Cracking the coding interview] (http://www.amazon.com/Cracking-Coding-Interview-6th-Edition/dp/0984782850) has some pretty good advice about this. I did read it however, but I found knowing it does not mean you'll pass by a long shot because you need to practice. Having said that...

>The idea of interviewing is becoming more and more miserable

Another take away I didn't think of is I could get more practice by arranging informal meetups with people you know at coffee shops and just have a conversation about the person to get to know the company and its culture better (My mock interview was in a coffee shop). If you have questions though they should be about the interviewer and not directly about the company. Maybe this is something you can try?

u/anonymous_4_custody · 2 pointsr/ProgrammerHumor

Gayle Laakmann McDowell here's the amazon link.

It looks like a tome of unending pain (around 700 pages) but the first 190 are interview and resume tips, a primer on computer science (Big-O notation), a discussion of half a dozen computer languages, and programming exercises. The last 500 pages is a walk-through of the the exercises. Including what kinds of questions would greatly simplify them. You can get through all but the exercises in a long afternoon.

She even talks a about how asking a person to write some random algorithm that has nothing to do with what you will be doing every day for your job is probably not a great interviewing technique, but, since that's the world we live in, here's a book on how to deal with it.

u/Double_A_92 · 2 pointsr/learnprogramming

I don't know about your specific learning path there... But most of the times this book is recommended: https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850

And btw your English is very good :)

u/hwillis · 2 pointsr/ECE
  1. software internship

  2. READ THIS
u/IronLionZion95 · 2 pointsr/cscareerquestions

Usually the CTCI referred to here is Cracking The Coding Interview. It´s probably the best known interview preparation book. You can easily find the PDF online but I would recommend buying it because it´s like an algorithms/datastructures bible and it will make it easier to take notes (it´s also a tiny investment compared to the potential pay-off). I think if you can comfortably do all of the questions (incl. moderate+hard) then you will be close to ready for Google. It depends from person to person. But I would recommend doing some LeetCode Google flagged questions afterwards to gauge how well prepared you are. For some people CTCI alone is enough while for others an additional 50-100 LeetCode are sufficient (some skip to LeetCode directly and do 150-300 questions on there). Note that CTCI is an alternative to EPI (Elements of Programming Interviews). Doing both would be a bit redundant. From what I gather EPI has more challenging problems so might prepare you better for Google, but if you´re very rusty then CTCI might be an easier start.

There´s plenty of resources available on this; I suggest checking out the relevant FAQs in the sidebar of this subreddit.

u/Vitate · 2 pointsr/cscareerquestions

My Story

Hey pal, I was in a similar boat about 8 months ago. It was my senior year as an Economics major, and after taking a programming class, I instantly fell in love with it. I crammed a few more programming classes in before graduating, but in the end, I sure as hell wasn't employable as a software engineer.

​

I had a choice: become a data analyst (the path I was currently on) or follow the software engineering dream. I chose the latter.

​

I decided to go to a (remote) coding bootcamp after college. The program was 6 months. It taught web development (Node, React) and some very basic CS fundamentals. I spent my free time outside the bootcamp inhaling all the computer science and industry information I could. I did this because I wanted to be a competent programmer. I found it fun.

​

This week I had my second onsite. I expect to receive a full-time software engineer offer (my second offer so far) later today, and I have 4 other onsites in the near future (a big 4 + a few startups). It has been a heck of a lot of work to get here, but if you want it badly enough, it's possible.

​

My Tips

  • Try not to be intimidated by these tips. Software engineering is something that you take little bites out of. You cannot become an employable developer in one bite, and sometimes the field can be intimidating.
  • Your options right now are self-teaching, a coding bootcamp, or a CS master's degree (might be hard to get into a good program without a bit more relevant experience, tbh.).
  • It's going to be pretty difficult to break into anything other than web development for your first programming job without a CS degree. Titles like Front-end Engineer, Full Stack Engineer, Backend Engineer, and Software Engineer (at a web company) are within reach. More specialized titles probably aren't very realistic.
  • Basic toy projects (i.e., simple HTML/CSS or similar) probably aren't enough to get significant attention. You need things more complex, like full-stack applications built from scratch. This means a working backend, a working database, a modern front-end (using a framework like React, etc.). Here's my portfolio if you're curious about the type of apps I mean.
  • Other types of programming applications outside of web dev are also fine, as long as they are sufficiently complex and interesting.
  • Put your projects on your GitHub no matter what. Learning how to commit code to GitHub is an important industry practice. Having a green GitHub history makes you look better.
  • Try and build a portfolio once you get better at coding. Don't kill yourself making it look amazing, but do try and make it look good. Not everyone will care about your portfolio, but some people will. I got an interview just based on having a nice portfolio.
  • Your university course sounds like a great primer, but you need to go deeper to be competent enough to pass interviews. I took similar courses at my university, but what really helped me was going through a few textbooks (1, 2, 3 -- some suggestions) and watching MIT 6.006 lectures. You will still have gaps in things like web security, scaling systems, networks, and operating systems, but I wouldn't spend a ton of time learning those topics as a new grad. Knowing the basics can be helpful though, because these things do definitely come up in interviews.

    ​

    Happy to answer any other questions you may have. I'm not an expert or an experienced software engineer yet, but I've walked the path you're considering, so hopefully my tips are helpful.
u/cool_anna · 2 pointsr/iOSProgramming

Depends on the companies you're applying for. For the top 20-30 tech companies in the US ( in terms of revenue/popularity etc.), familiarity with algos and DS is must.

However, the difficulty of questions is dependent on how good a company is.


I would suggest Cracking the coding interview and leetcode are really very useful to get into top tech companies

u/yiliu · 2 pointsr/learnprogramming

Well, it was my fear too. When I was getting close to graduation, I was sure nobody would be interested. Then I got an interview, and then got a job, and then I was away.

Generally, at least in my experience, it's not hard to get interviews (or at least phone screens) because companies are all looking for talent and a phone screen is pretty low-cost for the company. If you're worried, warm up with some interview questions (from this kind of book for example). If you can get an interview, and if your interview goes well...well, that's all it takes.

u/Stupidideas · 2 pointsr/cscareerquestions

Cracking the Coding Interview is quite popular. It gives a refresher on essential data structures and algorithms, along with tips for working through "whiteboard" problems. I've found it quite useful in the past.

u/valbaca · 2 pointsr/cscareerquestions

These are books I actually own and would recommend. Of course there are other great/better books out there, but I'm going to stick with what I've actually bought and read or "read".

I say "read" because several books are NOT meant to be read cover-to-cover. These typically have about 1/3 that you should read like normal, and then skim the rest and know what's in the rest so that you can quickly reference it. These books are no less important, and often even more important. I've marked these kind of books as #ref for "read for reference". Normal books that should be read cover-to-cover are marked #read


For learning your first language: This is really the hardest part and unfortunately I don't have any books here I can vouch for. I started with "C++ for Dummies" and am not including a link because it's bad. Your best bet is probably "Learning <language>" by Oreily. I also love the Oreily pocket books because you can carry them and skim while on the bus or the john, but you can just do the same with your smartphone. Pocket Python, Pocket Java, Pocket C++

Top Recommendations:

Accelerated C++ #read Made for people who already know another language and want to pickup C++. Also great for people who need a refresher on C++. I really like how it doesn't start with OOP but gets you familiar with the imperative parts of C++ before diving into OOP.

The Algorithm Design Manual #ref This is my new favorite book and the first I would send back in time to myself if I could. Each algorithm & data structure is given a mathematical breakdown, pseudocode, implementation in very readable C, a picture (very helpful), and an interesting war story of how it Saved The Day.


Cracking the Coding Interview #read I originally avoided this book like the plague because it represented everything I hate about coding interviews, but many interviewers pull questions straight from this book so this book can equal getting a job. Put that way, it's ROI is insane.

The Pragmatic Programmer #read Must-have for any profressional software engineer that covers best-practices for code and your growth. You can also find the raw tips list here

Head First Design Patterns #read Many prefer the "GoF/Gang of Four" Design Patterns which is more iconic, but Head First is a modern-version using Java to cover actual design patterns used day-to-day by programmers.

For Intermediates:

Effective Java or Effective C++ and Effective Modern C++ #read When you're ready to go deep into one language, these books will give you a huge boost to writing good Java and C++.

Design Patterns #ref You'll want to get this at some point, but early on it's too much for a beginner and many of the patterns are obsolete.

The Art of Computer Programming #ref The programming "bible" but like Design Patterns you should hold off on this iconic book until you've got your basics covered. It would make for a great purchase with your first paycheck or first promotion :)

u/reikj4vic · 2 pointsr/programming

Glad to see that you're getting these things covered! That illustrated book on algorithms looks really lovely and seems like a great way to wrap your head around the important concepts.

I can't personally recommend any online course on these topics since I covered these in college, however I can definitely recommend this book.

You might want to dive into it after you have some decent knowledge of data structures and algos. As you work through the problems you can fill out any gaps in your knowledge and look up the info online.

u/NeonSpaceCandy · 2 pointsr/computerscience

Learn how to Google for the resources that are already available to you. Be comfortable using the command line, pick your favorite IDE (VS Code is my favorite), learn on your own, develop your own projects (could possibly lead you to research opportunity), lead in university projects, outside of class time attend meetups with professionals already in the industry.

I tend to agree with the notion that college will only be as valuable as the amount of effort you put in to learn. The college degree is just the baseline for the lowest common denominator.

Eventually when it comes time for the interviewing process, you should definitely review Cracking the Code. To truly set yourself apart in addition to the CS workload, do the above mentioned.

u/xTheatreTechiex · 2 pointsr/jobs

Dude, you have four years worth of programming for a company, regardless of if it went under, you have the skills (skills that i want, :/) and the experience. go subscribe to /r/cscareerquestions for help, ask them questions and show them your resume. Most of them will say to buy cracking the coding interview, and study hard. if you haven't already, make an app, any app to show case in an interview. I notice you dont have c++ in your languages, from what I understand, it's not a deal breaker, but it is almost always preffered that you know a bit of it, as it's what most college applicants learn. TBH, i envy you at the moment, you dont need the degree, though you could probably get it in 2-3 years.


https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=pd_sim_14_6?_encoding=UTF8&pd_rd_i=0984782850&pd_rd_r=Y0VQM2V7EA06TTHXG0XA&pd_rd_w=mYvth&pd_rd_wg=HQWyV&psc=1&refRID=Y0VQM2V7EA06TTHXG0XA

u/itweasallyellow · 2 pointsr/learnprogramming

I think it is a "nice to have" but not required. Most questions asked during a jr position interview will be algorithm related and it will not be java specific.

I am currently studying for the Java SE 7 Programmer I cert only because my company paid for it. If you are looking a job, I would suggest reading Cracking Code Interview instead.

u/grandslammer · 2 pointsr/csharp

Thanks, but this is one 7.5 hour course and does not seem anywhere near a complete path to being job ready.

I have a Udemy account and would buy Mosh's courses on Udemy if I thought that they would form a concise package when put together. I would supplement this learning with books if necessary - specifically the following:

https://www.amazon.co.uk/dp/0735619670/?coliid=I3G8SYORH393ZR&colid=1IRAIWB2MBRLH&psc=0&ref_=lv_ov_lig_dp_it

https://www.amazon.co.uk/dp/0132350882/?coliid=I1ZCBXMO9SV7S2&colid=1IRAIWB2MBRLH&psc=0&ref_=lv_ov_lig_dp_it

https://www.amazon.co.uk/dp/0984782850/?coliid=I1OZDYM4OMN8N7&colid=1IRAIWB2MBRLH&psc=0&ref_=lv_ov_lig_dp_it

But a course where everything fits together (such as a bootcamp I can't afford) is really what I'm looking for.

u/ss0317 · 2 pointsr/learnprogramming

Congrats on landing the interviews. I don't have any specific advice, but perhaps pick up the book "cracking the coding interview" and give it a once over. It offers some good technical and non-technical advice that may be helpful.

You're probably right in saying that you're not going to become an expert by reading books over the next few weeks. I think the best thing you can do is gain as much knowledge (within reason) in the areas you think you are deficient in.

The ideal candidate doesn't necessarily posses all of the skills at day 0, they're going to be judging you from a standpoint of whether or not you have the prerequisites to grow into the position as well. You've already proven to them that you have talent. So, in addition to last minute gap filling, also focus on your soft skills and your ability to demonstrate a growth mindset... it may take you further.

u/pancake117 · 2 pointsr/Purdue

You really don't need a good GPA. Here's the big stuff:

  • Put a lot of work into your resume so it looks nice. This is sort of obvious, but a lot of people just throw one together without a lot of work. Also, don't listen to the CCO's resume advice, they don't know what they're talking about for CS.
  • Side projects are really important, especially if you aren't confident with your GPA. You want to show companies that no matter what your grades are, you know your stuff where it counts.
  • Along the same lines, you want to have an active github (and link to that on your resume). Ideally you want to shoot for one commit per day, but obviously school is a timesink and that's not always easy. One trick you can use is to commit all your school projects into private github repos, since those are still displayed on your timeline. This shows companies that you're hacking away in your free time, even when you don't have to.
  • Read through cracking the coding interview and do some online practice questions (firecode, leetcode, etc..). It's great to land the interview, but unless you're ready for the technical interview questions you won't make it through. If you haven't experienced one of these interviews before, you should know that they're pretty different than you might expect. The resources above (especially cracking the coding interview) will give you a great idea of what to expect.
  • Also keep in the mind that the first internship is the hardest to get. You should expect a lot of rejection letters. Even the best candidates will be getting a lot of rejection letters. If you apply to 100 companies and land a handful of interviews, that's a win. Don't let a few rejections get you down!

    Good luck :)
u/millipedetamer · 2 pointsr/cscareerquestions

You should have learned about trees in your data structures and algorithms courses. I would recommend getting a copy of this book and start studying: https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=sr_1_1?ie=UTF8&qid=1482600591&sr=8-1&keywords=cracking+the+coding+interview

u/DonaldPShimoda · 2 pointsr/cscareerquestions

The Engineering Practicum is the one for, like, freshmen and sophomores, right?

Look, just... be cool about it, haha. Check out LeetCode and get comfortable with the Easy questions. FYI, you probably won't know a lot of the stuff — but that's okay! Mostly you just wanna get comfortable with the types of questions. If you want, you can pick up a copy of Cracking the Coding Interview (CTCI), but I'm not sure it's worth it if you aren't applying to other internships this cycle. Honestly I've just used it for questions mostly, and there are plenty of questions on LeetCode.

Just keep positive and study what you can. Let us know how it goes! :)

u/zach2good · 2 pointsr/AskProgramming
u/HighLevelJerk · 2 pointsr/india

I would highly recommend Cracking the Coding Interview by Gayle McDowell. Its aimed at cracking interviews at big companies like Google, Microsoft, Amazon, but the things mentioned in the book easily help crack interviews for other companies as well.

You could try to get a cheaper version in your local stores or search for a pdf online if you find it expensive.

Edit: Much cheaper on Flipkart

u/heres_some_advice23 · 2 pointsr/computerscience

Mechanical Keyboards: High quality keyboards with tactile feedback. They have a real impact on your typing speed, and also make programming less boring. They are very commonly used by programmers. Mechanical keyboards have different "switches" that make different tactile sounds. "Blue Switches" are considered the most popular. Here are some examples: https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=mechanical+keyboard.

Gaming Mouse: Same usage as keyboards, but not as useful. Its mostly just nice to have.

Textbooks: In computer science, there are one or two textbooks per subfield that are considered to be "Bibles" of the subfield because of their importance. If your bf just started cs, he won't have any interests in any subfield. However, the subfield of algorithms is more or less all encompassing. More crucially, knowledge of algorithms is the most important (and arguably only) thing you need to know to get a job. If you want to work at a top CS company like Facebook or Google, you need to know your algorithms very well in order to pass the interviews. There are two books I can recommend for this:
https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844/ref=sr_1_1?ie=UTF8&qid=1503472210&sr=8-1&keywords=algorithms
and
https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1848000693/ref=sr_1_5?ie=UTF8&qid=1503472210&sr=8-5&keywords=algorithms
These are the most prolific algorithms books (imo). Another important book is "Cracking the Coding Interview": https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=sr_1_1?s=books&ie=UTF8&qid=1503471832&sr=1-1&keywords=how+to+crack+the+coding+interview

This is the "Bible" textbook for passing tech interviews. Every computer science student I know at school has at least skimmed through this book once.

Personally, if I were starting in CS, I would appreciate either the mechanical keyboard or the "Cracking the Coding Interview" textbook the most. Good luck!

u/caethan · 2 pointsr/bioinformatics

Sure, I can tell you how I did it.

First step, find companies/jobs you might be interested in. Biospace is a good place to start, but there's lots of other resources. Ask friends in industry, network at conferences, etc. Find a decent recruiting company that can hook you up with companies you've never heard of. Mirus Search was pretty good to me, and found a company/role that ended up giving me an offer. Figure out what you want --- small company or big company, public or private, location, field of work, and so forth. You're aiming for a list of at least a couple dozen companies and roles that look worth putting more work into researching. I stuck 'em all in a spreadsheet. A common error at this point is to miss lots of potentially good small companies, especially small private companies.

Second, research the company and the job. The goal here is to be able to answer the question "Why are you interested in this company" and "Why do you think you're a good fit for this job"? I had a row for each company/job and literally wrote the answers to these questions in a cell of my spreadsheet so I had them immediately on hand. If you can't answer either of those questions after some research, throw that company/job out.

Third, prepare resumes and cover letters for each one. Cover letters should be just a couple of sentences and personalized to each company. Mash them up out of your answers to the previous research. Again, I pasted this into my spreadsheet. Resumes should be short (1 page, maybe a second page for publications) and contain only stuff relevant to the job you're applying for. If you're applying to multiple different kinds of jobs, emphasize/cut different things. For any kind of job involving programming, link to your github/bitbucket/whatever account, assuming you've got something decent up there. Put something decent up there if you don't have it, just drop all your academic work in. I was told after being hired that my code sample from sourceforge is what got me the interview in the first place.

Fourth, send them off. I colored rows of my spreadsheet to keep track of everything. Blue for "sent off", green for "phone interview", red for "rejected". If you get rejected, be nice and say thanks. I got at least three follow-ups from companies about three months later saying that actually, they did have an opening for someone now. Expect a lot of rejections.

Fifth, prep for interviews. Expect technical questions. I got a lot of statistics questions and some programming questions. Prep for them. I spent a couple of months working through books like Cracking the Coding Interview and practicing questions on a whiteboard. I borrowed a whiteboard from work and did them at home on the board out loud. It helped a lot.

I started with ~30 companies of interest, had phone interviews with ~5, on-site interviews with 3, and offers from 2. Good luck! It's a lot of work.

u/zelmarvalarion · 2 pointsr/cscareerquestions

Well, first off, focus on describing the problem out loud, and start with what you are planning to do and why, along with what similar other problems you've seen. I would recommend speaking out loud and writing notes even when you are alone, then putting it down in high level pseudocode, then doing the actual coding.

Another thing I would suggest is starting with the "happy case" (e.g. for something that involves recursion into two subproblems, assume that it is a power of two and the only odd that you will have to deal with is the case with 1 element) leaving out the boundary conditions until the end and mention that, always state your assumptions and then you can go back and fill in the edge cases once you have something that works for the simplest case). If you get stuck or realize why your solution won't work, explain out loud why (or more likely, what your runtime is, and what you would have expected your runtime to be and why, e.g. you are doing another extra loop, but maybe you could do something with memoization or dynamic programming to cut that down due to repeating subproblems). In the actual interview, the interviewer is there to slightly guide you too, so you have some extra resources that you wouldn't on leetcode.

I would personally recommend grabbing a copy of Skiena's The Algorithm Design Manual (https://www.amazon.com/dp/1848000693/) and/or Cracking the Coding Interview (https://www.amazon.com/dp/0984782850/), as they walk you through how to approach the problem, not just show you the answer.

u/gg_by_fg · 2 pointsr/cscareerquestions

The sixth edition. It's very green.

Edit: damn markdown...

u/sandwhale- · 2 pointsr/cscareerquestions

> He has had one junior developer interview that I found for him (another client of mine, after I talked up his progress and how proud I am of him) but he froze up and didn’t get the job. Since then it’s been mostly daily auto rejection emails. I can tell he is starting to lose hope and shut down because he is very ambitious and hardworking (much more than I’ve ever been).

> So, what actions, steps, courses, books, words of support, etc did the people in your life share with you or do for you that made a long, difficult job search bearable or better or easier? Or what do you wish they had done or said differently?

So I don't know your BF, but one thing to keep make sure is that he welcomes your help. I know some people take offers of assistance as a sign of weakness. It's great you're trying to help him, but it's best to make sure.

I've been through the same process - albeit single at the time. But I understand the stress and fear of uncertainty he's going through. One of the best thing you can do is not involve this in your interactions/dates/etc. Just being a good girlfriend/boyfriend is usually more than enough when someone is going through a stressful time. Having small moments with you where he can destress will do wonders for his mental health.

More than anything - be understanding. I've known some couples that have broken up because the other party didn't understand the stress the other party was going through. For example, having issues with not spending enough time together, closing up, etc. Being understanding and being there for him is really one of the best things you can do even if you don't directly help him. If he needs time alone, don't make it a personal issue - he's probably dealing a lot within his head and he will come to you after he's had time to himself. If he lashes out at you due to his stress (which is quite common since he's trying to find an outlet), try to defuse it or just shrug it off. Of course, don't take it lying down if he crosses the line - but know that it's coming from a place of fear and assuming it's no big deal, just letting it go will work wonders.

When this is all over, he will know all the things you've done for him and will appreciate you that much more as a girlfriend/boyfriend.

One book I do recommend is Cracking the Coding Interview. It's been basically my bible when I went through the interviewing phase and it's helped out tremendously. It goes through in-depth about how to change your mindset during an interview and what to expect. Having more knowledge builds confidence. Having confidence will prevent him from freezing up. I don't know if your BF already owns this book, but it would be a great gift - assuming he's welcoming to your assistance.

u/Torber-Rade · 2 pointsr/SoftwareEngineering

I give this advice to everyone on this sub who asks because it’s honestly the best advice ever. Buy this book (30$ rn on amazon):

Cracking the Coding Interview: 189 Programming Questions and Solutions https://www.amazon.ca/dp/0984782850/ref=cm_sw_r_cp_api_i_Ic6QCbQXY71DN

I give credit to the author and this book for landing me all my internships and a job at a FAANG. Read it, do what she says to do in the book, and if you still don’t get an internship, I’ll pay for the book.

u/gingerninja300 · 2 pointsr/cscareerquestions

Get cracking the coding interview:

https://www.amazon.com/gp/aw/d/0984782850?pc_redir=T1

Read all of it, code your own solutions to the problems, and post them to a github account. That will prepare you pretty well for interviews.

As for getting your foot in the door, that's gonna be a bit more difficult without a relevant degree. Try doing a couple projects maybe. Definitely go to career fairs and talk to recruiters. That'll be easier to get into than cold resume dropping.

u/ap3rus · 2 pointsr/dotnet

While reading this book I've found the website from the authors of this book which has some tips on how to make a good resume, and they also offer a resume review service, but I personally haven't used that so far, so no comments on that one. I also find these tips from ex-googler and ex-microsofter pretty useful. But I'd also like to hear some experiences from anyone who used those resume writing services, my experience is getting close to 10 years and I'm starting finding it a bit troubled to highlight everything important in one-two pages.

u/DiogoSnows · 2 pointsr/algorithms

I think different people have different ways to retain knowledge. Whatever motivates you.

I like to view learning as a game with multiple levels. I'd start with something easier, more practical, this will keep you motivated with faster feedback and will raise the right questions for the next level.

Start with a book of problems that isn't very formal yet, I'm thinking of the likes of Cracking the Coding Interview

Then move to some of the suggestions around The Algorithm Design Manual and Introduction to Algorithms.

At this point you may want to specialise your knowledge in a particular area of algorithms or math.

The good thing about this approach is that you see results earlier and can also start applying your knowledge quickly (even if very limited).

Along the way, as a second vertical of learning that you should pursue, you should take some online courses on algorithms or more specialised applications (biology has a lot going on now).

Have fun

Edit: try HackerRank too!

u/LIFE_SIZE_GIRAFFE · 2 pointsr/StockMarket

Buy this or find one at a library: https://www.amazon.com/Heard-Street-Quantitative-Questions-Interviews/dp/0994103867. If you can do a lot of the problems in there you're probably set. Some firms ask about derivatives pricing or programming depending on the position. It's also a good idea to have some idea of current financial news, read Barron's, the Economist, WSJ, etc.

u/protox88 · 2 pointsr/finance

> I'm looking at jobs in quantitative software engineering roles, like Jane Street, DE Shaw and Two Sigma.

Then brush up on your probability and statistics brainteasers. That, and algorithmic brainteasers (like things to do with linkedlists, arrays, etc).

Sample book is Heard on the Street by Crack or Quant Job Interview Questions and Answers by Joshi et al.

You don't need to know finance for Jane Street. They emphasize that...

u/garyandbarry · 2 pointsr/cscareerquestions

The answer to your question is highly dependent on the company in question. In general, the more competitive/higher paying the internship, the more you'll need to know. What you're learning in your data structures and algorithms course should be a good foundation, but you might want to do a bit of self studying.

http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

http://www.amazon.com/Programming-Interviews-Exposed-Secrets-Landing/dp/1118261364

Both of those books will offer good preparation and can I believe be found online. You don't need to go through the entire thing, but definitely reading a bit and trying out a couple of practice problems will give you a feel for what to expect.

u/purpleandpenguins · 2 pointsr/EngineeringStudents

This might be slightly more appropriate for Computer Engineers, but when I was thinking about majoring in CE/EE, a friend who works for Microsoft recommended Programming Interviews Exposed. It has both soft and technical questions and is a pretty easy read.

EDIT: Removed mobile link

u/rljohn · 2 pointsr/gamedev

Sent a PM with more personal details.

The book I used to study was an earlier edition of:
https://www.amazon.ca/Programming-Interviews-Exposed-Secrets-Landing/dp/1118261364

I'd apply to multiple positions that were interesting from the same company, but never to the same position more than once. Usually listings are kept fairly up to date.

u/followmarko · 2 pointsr/UnethicalLifeProTips

Sorry, got busy for the holidays.

It seems like you're falling victim to the same cycle that a lot of us have. You can't get a job without experience, but you can't get experience without a job. It doesn't make a ton of sense.

Google/Amazon/Uber rely heavily on data structure and algorithm knowledge in their interviews. I have the first edition of this book for JS data structures. I went through it and coded all of them out. It helps to understand them.

In my master's program, I had a class on algorithm design that in hindsight, I wish I had paid more attention to. We used this book but I think there are better ones available now.

I have this book as a general interview reference which may summarize the above two suggestions better for the interviews.

Time/space complexity was also helpful information to know. Big O notation is a useful thing to have in your arsenal to begin with.

These are just suggestions for notorious interviews for infamous tech companies. Not every company is going to grill you about these concepts. But having been someone who has failed several intense programming interviews, and now conducts them for our company, I think all of this information is applicable, and a true tech company likely won't grill you about job experience if you can apply these concepts on a whiteboard without thinking about it.

Data Science is a great spot to be in right now. Spend a little time every day applying some programming principles to big datasets. It should be enough to land you a job at a solid company if even at an entry-level position.

Also, get out of AngularJS and learn Angular 2+. React/React Native also seem to be in high demand. They have become commonplace at most large companies trying to stay on the edge of technology for their users.

u/rsmudge · 2 pointsr/netsecstudents

I recommend that you take a look at Programming Interviews Exposed. This book is a collection of quick/well written explanations of different Computer Science concepts (stacks, heaps, lists, and other data structures are covered). I read the first edition of this book years ago and I loved it for its brevity.

http://www.amazon.com/Programming-Interviews-Exposed-Secrets-Landing/dp/1118261364/ref=asap_bc?ie=UTF8

u/Mr_Bennigans · 2 pointsr/gamedev

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


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


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


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


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


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


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


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


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

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

I thought this book was excellent: Programming Interviews Exposed: Secrets to Landing Your Next Job!

It has lots of examples and guides you through how to think about them in a way to display your knowledge about different comp sci topics.

u/expatbtc · 2 pointsr/careeradvice

A few recommendations for you.

Ray Dalio - Principles for success. https://youtu.be/B9XGUpQZY38
I think you’ll see how his advice and mindset can apply to your situation.

Michael Watkins - First 90 Days. https://www.amazon.com/First-90-Days-Strategies-Expanded/dp/1422188612

I think when people get start new roles there’s this expectation of ‘plug n play’ and immediate acceleration for the business, and it’s tempting to skip steps. I think this book does a great job of outlining what you should do. I’ve had to take over leadership roles in turnaround company, which basically is saying the odds of failing is much, much greater than success. I found using the recommendations from book as a good way to manage expectations and covering all areas and nobody could accuse me of not thinking things through when something bad happens. I would look at your next 90 days as the first 90 day do-over. Follow the steps, and see if there’s improvement,

20-30% time, I would look into exploring what ‘problem’ in your industry or field that is worth solving. Maybe it can help your company, maybe it doesn’t. Maybe you have do it secretively. MayBe it leads you into entrepreneurship (but you should passionate in solving problem, than enamored with building a company). Maybe it leads you funding somebody else to execute on your idea. Or if your time at current company ends, then you can pursue this problem/solution with another company. If you don’t know you can carve out the 20% time. I would bucket all tasks considering urgent and important. Only give priority to tasks that are both urgent and important. Don’t stress on urgent/unimportant and not-urgent/unimportant tasks.

My vote is you should stay, make some effort to get good at job including ID-ing current issues, but at same time be proactive in figuring out what you want to do, and making a plan for it, and taking action. This way you have clear idea what your options really are. Quit because there is something you really wish to pursue that’s worth more than that high compensation package that you’re getting now.

u/drfuzzphd · 2 pointsr/arsclan

Congrats! As someone who made a similar transition about 8yrs ago... Being a successful manager is about understanding your upper management's goals, effectively delegating to your directs, guiding them using appropriate situational leadership principles, and earning the trust of your peers, directs, and management through consistency, communication, and delivering results. Advocate for your people, empower them to do their jobs, and give honest feedback. It's all easier said than done :)

Go read some books!

The First 90 Days: Proven Strategies for Getting Up to Speed Faster and Smarter

The Great Workplace: How to Build It, How to Keep It, and Why It Matters

Leadership and the One Minute Manager: Increasing Effectiveness Through Situational Leadership II

u/ingreenheaven · 2 pointsr/compsci

"Programming Interviews Exposed" suggested by Kaelin is pretty helpful. Personally for me, Cracking coding interviews was extremely helpful. I highly recommend it. Read from the beginning, even the chapters before the technical questions. For technical questions, only once you are satisfied with the solution you come up with or when you have spent enough time trying to solve it, look at the solutions.

I would also suggest looking for questions online and then try to solve them. Again, avoid looking at the solutions as much as possible.

u/Semaphor · 2 pointsr/learnprogramming

There is a book called Cracking the Coding Interview which I highly recommend for such tasks. It has some tough questions that are usually asked at an interview setting. This is the best way to practice your algos, IMO.

u/evomatic01 · 2 pointsr/DecidingToBeBetter

He is most commonly known as the creator of the comic strip "Dilbert" but he is much more complex. Recently he has gained notoriety for being one of the only people to correctly predict Trump's victory in the 2016 election based upon Trump's masterful powers of "persuasion". He is a pretty smart dude. I highly recommend his blog and also his book.

u/JonathanMcClare · 2 pointsr/getdisciplined

This is something Scott Adams has talked about a lot. In fact, he wrote a book about it.

His main advice is to use systems, not goals. Don’t focus on specific goals. Focus on doing the things you can do day to day that will inevitably result in good things. You will always have some specific things in mind and you may achieve those things, but your happiness doesn’t hinge on it. If you follow a good system you will enjoy long term success one way or another.

You’re also not in the forever unhappy state of never being where you want to be. Goals, by definition, are things that haven’t happened yet. You focus on doing what you can do right here and now so you are constantly winning.

u/Trollatopoulous · 2 pointsr/StopGaming

Forget about stopping gaming for a second. Lift! Start going to the gym and have that in your life besides whatever else is happening. Once you establish that as a habit, you can re-assess your other habits.

More importantly, check your diet, what you put in you is going to determine who & what you are to a large extent. Don't try to go too crazy though because complicating things tends to lead to no results. Stick to eating enough meat, low amount of carbs (some sweet potatoes / brown rice, for dinner), and a good amount of veggies (tomatoes, cucumbers, bell peppers, broccoli, pickled beets, lettuce; mix and match from time to time, I don't mean have all of them in one meal). Whatever you do, you MUST abandon sugary drinks (diet cokes and the like are ok in moderation tho).

Here's a common day's meals template that's dead simple and good for you (and which I eat at least 3 days a week): lunch (bacon, eggs, cottage cheese w/ a splash of light soy sauce, some tomatoes), dinner (chicken thighs & sweet potatoes - oven baked; salad [tomato + cucumber + lettuce + splash of olive oil & vinegar], for drinks just some black tea with a teaspoon of honey in each and water.

Do that, and you'll be on your way to a great life for yourself, I promise. It's also very, very important to have patience. Right now you're probably wanting results fast and won't have the tolerance for putting in the effort required to steer the ship in a new direction. Have the perspective of life's length. You have many, many years to live still and you can enjoy those immensely but it requires you to keep them in mind when after a few weeks of effort you're not seeing the amount of progress you want and will want to revert back to old habits. Believe in the process & don't judge it too soon, it will take months just to get used to it, and then more months to really get the results you fantasise about. That's life, and it won't be any different for anything else - accept it. The sooner, the better. And whatever you do, don't think about it in big steps, but rather small steps. Think about the next hour and the next small tasks, ignore the macro for a second because that can set you back. It's going to be much easier to do it that way. e.g. if you had to lose weight don't think about the amount you have to lose in total, but rather focus on doing things right on that day, or even better - for the next meal, and take it like that, one meal at a time and ignore the bigger picture.

Only after you have diet and exercise under control even think about anything else. Any other "self-improvement" is a distraction until then and wholly unnecessary - even a detriment. Focus only on these two things for now.

Lastly, a great book I'd highly recommend you read to help you better with tactics for your journey is "How to fail at almost everything and still win big" by Scott Adams. It can do a lot for your thinking and will be immensely helpful.

Keep it simple:

  1. Gym
  2. Diet

    That's it, and read the book. Everything else will come after that.
u/TokenWhyte · 2 pointsr/JordanPeterson

I would suggest reading this book from Scott Adams: https://www.amazon.co.uk/How-Fail-Almost-Everything-Still/dp/1491518855

It talks about setting up systems instead of goals, and how it helps achieving stuff and getting new opportunities (which might be completely different from what you thought you would be doing).

Goals are easily prone to failure. Systems set you up for success, whatever that ends up being.

u/negrolax · 2 pointsr/csMajors

Elements of Programming Interviews. Personally I found this book more helpful than CtCI as its topics were more focused and relevant to the types of questions I had gotten in technical interviews.

u/Dormont · 2 pointsr/funny

Couple things then. First of all, the market is absolute garbage. That will affect you both as a solo practitioner and as an attorney. Secondly, you will not be able to practice until the bar results come back in October.

In the interim, buy this book first and consider other similar books after that. That book is simply the bible to running your own solo practice. You can find it on half.com and sometimes eBay for cheaper so look around. I think I paid $25.00 for my copy and it was worth triple that in returns on investment.

Keep applying for jobs. I cannot emphasize this enough. The best thing you can do is spend a week thinking of exactly the area(s) of law that interest you the most, tailor a resume to each of those areas and then write a cover letter for each of those areas. Make 2-3 short paragraphs about why you love that area and what experience(s) you have in that area of law. The topmost paragraph will be directed specifically to the firm/company you send it to.

If you did not go to a tier one law school or clerk for a federal judge avoid BCG Attorney Search, LawCrossing, GCC consulting, or basically any other consulting company who posts a job. They cannot help you and operate as a resume farm. You are far better off, sending cold resumes to law firms. Check, double check and triple check your spelling, sentence structure and length of both your resume and your cover letter. The resume you send will be bounced immediately by HR or the partner if you do not.

I found much more success with sending cold resumes than email. Emails get deleted, snail mail gets put in a pile or at least looked at. If you know the practice area you want to be in and there is a partner who runs that division, even at a small firm, if you address it to his/her attention it will be read. I cannot say that it will get you an interview or even a call but half the time you will at least get a letter back. Those rejection letters feel much better than wondering why you aren't hearing anything from anyone.

Now then, back to solo practice. It sucks. I mean it is really difficult both on your pocketbook, your ego and your pride. I am not sure where you are living but you want to go outside of the major cities if you want to start your practice imho. The reason for this is that the bar size shrinks considerably and the competition isn't quite so vicious. Depending on what areas you want to focus on, you can often find a few older attorneys willing to help you out and kick you a few cases if you are willing to give them back a referral fee (check your state rules) and do some cases they don't like/don't have time for. You will only succeed if you work your ass off and have a good reputation as an attorney. You MUST be a decent businessman to be a successful solo attorney. You can be a superstar in the courtroom, a legend of transactional work and still close up shop in under a year if you fail to bill clients, for the right amount, at the right times and continue to generate new business. This is the tightrope walk of the first few years and this will make or break you as an attorney.

This is not to say that you will not have time for a social life, but imagine if first year grades were the difference between eating and not eating and you can see why the solo practitioner is under more pressure than his big law friends. No one will be telling you what to do, when to do it, how to do it right. You will screw up a few (hopefully minor) things but the best advice I can give you is these few tips:

  • You will not become rich as a solo practitioner. If done correctly, you will be paying your bills the first few years and get a little extra to invest internally on the side. Marketing will eat 25% of your operating budget and will be the hardest part because ROI (return on investment) is so hard to track until you really get a few years in.
  • Do not hire anyone until you absolutely have needed to do so for a few years. This will bankrupt you when it gets slow. You will know when the time is right.
  • Never, ever, ever, start a practice as two young attorneys and think that you are "Partners". It simply is the legal equivalent of giving yourself a handicap. There probably are not enough cases for both of you to be doing and it will result in fights and other problems. Keep this in mind because those special titles you give yourself are hollow. You are just two young attorneys who share office space. Keep it that way and de-link your names. Check your local rules on advertising.
  • Buy things before you need them and probably in bulk (Costco, Sams Club) whenever possible. This is your normal office supplies, think toner, ink, paper, folders, etc. Those are things you will always use but do not go too crazy. As for office furniture, go on Craigslist or get some scratch and dent at the office surplus places around you. NEVER pay for the furniture at full price, unless you are already loaded but even then a fool and his money...
  • Look for an office space with other solo practioners. Ask around and someone will know someone with an empty office in their building. These are usually around the courthouse in more rural areas but can be anywhere if you are in the city. You will be grateful for the advice you can get and if they have overflow or cases they don't do you can pick a few up with a modest referral fee (again check NY rules).
  • Join your local bar association, get involved in the committee you practice in and attend any social events. This is where you make connections and get help the fastest. Attorneys in smaller areas want to talk about themselves and help you out in the process. Take advantage of the Lawyer Referral Service. Do be careful/wary of any advice given to you though and talk with other attorneys about the reputation the person giving you the advice has. Sometimes really friendly attorneys are bad attorneys and you don't want to misfile something because of bad advice.
  • Lastly, never take any work for which you are not getting paid unless it is pro bono and you have the time/money to cover it. This also goes for getting underpaid. You can starve because you spend all day giving free advice to people who call you. No money, no call back. Make sure you understand this above all else. Also make sure you send non-representation letters, etc. according to the rules.

    Hope this helps and GO STUDY FOR THE BAR There will be plenty of time after the bar to worry about what you are going to do with that newly minted license but you first need to take the test. Good luck and let me know if you need anything else.

    Just to cover the bases, you should already know that this is not legal advice and do not follow it as such. As a JD I am pretty sure you already know this but since this is a reply I didn't want anyone to think that this was intended as such.
u/DatWerkk · 2 pointsr/LawFirm

Haven't yet seen anyone recommend this book. For many this is an indispensable resource for someone starting a solo practice.

FWIW, the author of this book says the best time to go solo is directly out of law school.

u/rightc0ast · 2 pointsr/Libertarian

Also, this makes a fairly unassailable case that more charity exists than welfare now, and that's long after states have dissolved mutual aid societies, charity hospitals, and food co-ops as they once were.

I don't have data on hand, but no reasonable person would claim that less well intentioned but mistaken redistributive programs would mean less charity. I'd say pretty much everyone would be forced to take the initial guess that it would be more charity in that case, not less. There's more held by people to be given away, and no pretending that an authority will take of it instead the people.

I mean, I'm an atheist, and a generous one .. so this book clearly makes me uncomfortable. People like me in most ways are not as generous as I am, for some reason. Your book explains the overarching reason. This one explains the individual data.

u/roothome · 2 pointsr/coding

Glassdoor.com is an incredible asset.

Microsoft has a ton of resources available for helping people to do well in interviews(they want you to succeed!), so search their website for info.

This is more for dev but this book http://www.amazon.ca/Programming-Interviews-Exposed-Secrets-Landing/dp/047012167X is really good and they will often pull questions right from it.

You're probably a cs student so I would go over your notes for whatever algorithms/data structures course you've had. Just because you are interviewing for a test position doesn't mean they won't ask you dev or pm questions.

They won't ask you any of those "How do you move mount fiji" questions so don't bother/worry about those.

Most of all though, relax. You'll probably ace it and Microsoft internships are a lot of fun. Good luck!

u/binarybabe · 2 pointsr/TwoXChromosomes

I've found that I gained most of my best experience on the job, and that staying at a job where I wasn't learning anything was a huge mistake and detriment to my career.

That said... I don't think I'm a super genius either. I did well in college and my GPA helped with my first few jobs. But I have lots of hobbies outside of work, and rarely spend my time at home thinking about the office. A lot of times companies aren't looking for the super genius type either... if they were they'd have a hard time filling staffing requirements. I think the keys are learning how to interview well, focusing on letting the interviewer know that you're willing and good at learning and having the basics of OOO down to a T. Come off as confident, even if you don't feel it. It never hurts.

As far as books go, here are some of my favorites:


Programming Interviews Exposed


Programming Pearls


Refactoring



I'm mostly a java programmer, so here are three absolutely necessary java books:


Head First Design Patterns


Core Java 1


Core Java 2 - Advanced


u/trevorsg · 2 pointsr/microsoft

I'm finishing up my BS in Computer Science at The University of Texas at Austin. I've completed 3 internships at Microsoft (Office, Windows, and Visual Studio) in the summers of '10, '11, and '12, and I will be returning to the Visual Studio group in January as a full time employee.

I nonchalantly gave my resume to someone at the Microsoft booth at a job fair for science majors at my school. Got a call and had a short interview at the UT campus. The questions weren't very technical or difficult: "how do you test software?" and "write a function to shuffle a deck of cards." Long story short, I was invited to Redmond to continue the interview process (they do this for all interns). I had 4 different 50-minute interviews in Redmond. The questions were more difficult, but nothing too terrible. After all, these questions were intended for interns.

I wanted to get some experience with a different team for the summer of '11, so I re-applied and re-interviewed. I had 4 more interviews with folks on the Windows team. I got similar questions. I think it's important to say that you don't have to blow all of your interviews out of the park; I certainly didn't. I was very nervous during the first one and didn't connect with the interviewer. I screwed up writing a factorial function, if you can believe that.

I prepared for the second round of interviews by reading this book, and I found it to be fairly helpful. Although it can't possibly have every interview question, it prepares you for the types of questions you can be asked.

After my internship with Windows, I wanted to return to Microsoft, but on the East Coast, where Microsoft has some Visual Studio development. I did a phone interview and was offered the position based on positive feedback from former interviewers.

The link you gave is for research interns, which as far as I know are for Ph.D students. If you're interested in a non-research internship, you should visit http://careers.microsoft.com/careers/en/us/internships.aspx.

Hope that helps! Cheers.

u/clinintern · 2 pointsr/programming

I've been pretty fortunate that I've been able to get interviews and job offers pretty easily within the game industry as a programmer.

I wouldn't consider myself a master programmer by any stretch and definitely don't spend as much time practicing on Code-Kata, etc as the poster. (The majority of my spare time is spent on unpaid overtime - if I can get that under control, then maybe I can apply some time to personal projects).

The 3 keys that I have found to make it easier to land the interview and the job is:

  1. Networking - this is a MUST. If you know someone at the company that can vouch for you, sometimes the technical phone screen can be bypassed completely and it's a lot easier to position yourself above others when you have a good reputation before the interview. Call friends/colleagues that are still in the industry and ask if they are hiring or know anyone who's working somewhere where they are hiring. If there are conferences related to your specific industry (specialized types of programming), try to get to one of those and do what you can to get on a guest list for some of the company sponsored parties. Talking to people in a social setting goes a long way and is typically more effective that meeting a dedicated recruiting sessions.

  2. Be energetic and friendly. Skills are only half the requirement, cultural fit and an easy going attitude go a long way to whether or not you'll get a job. How your potential colleagues feel about you is almost as important, if not more important, than if they think you are qualified (networking can help a lot to achieve this feeling amongst your potential colleagues).

  3. Pick up this book and read it cover-to-cover: Programming Interviews Exposed. Most technical interviews ask questions from this book or variations of questions found in this book. Rarely do they really distinguish a good programmer from average/bad, but you're really competing with people that are good at interview questions and have seen them before vs people that are not or get a question they haven't seen. Every time I'm starting a new job search, I re-read this book, go over old programming tests that I saved and run through some of the problems from college programming tests on the ACM online judge website to get ready for obscure brain teasers.

    I can't really say whether the hiring process is broken or not, much of what they do does weed out people that really don't belong. But if you don't know the game or don't play the game, you may get swept to the side along with them.

    I hope this helps - good luck!
u/passingby · 2 pointsr/getdisciplined

One of the best things to do is read what other programmers have to say. It opens yourself up to things that you might not normally come across. Schedule a time of the day where you will go on Stackoverflow to answer questions or read answers. Also in that time, read some blogs and any new articles. A few of the websites that I really like:

  • Stackoverflow

  • Coding Horror

  • Joel on Software

  • Wolfire Games (especially since you are into game development)


    Have you caught up reading the classics when it comes to software development? A great list of them can be found here. A few that I have found totally eye opening:

  • The Pragmatic Programmer

  • Programming Interviews Exposed

  • The C Programming Language

    Also, have you used any new technology lately to make something cool? Schedule a time everyday (similar to when you read new things) to work on a project no matter what. Close Reddit, close your email, and get programming! Here a few things I had on the top of my head:

  • Try making a web chat using SocketIO for the messaging and Node.js for the backend

  • Ever used a MVC style framework for web development? Try out something simple like Flask then move onto something more complicated with Django.

  • Learn Haskell

  • Learn a dialect of Lisp

    Hopefully all of these can give you an idea of how to improve.
u/yontodd · 2 pointsr/Economics

That is truly a mind-blowing stat.

Enrico Moretti's book "The New Geography of Jobs" touches on this idea in depth, too. Cities are by definition more productive, and we either need to build more within cities, or at worst, provide better transportation links between cities - if a worker in Fresno can commute by rail to SF in an hour, they bring some of those productivity gains into less productive areas.

u/thewaltzingbear · 2 pointsr/academia

There are some books that give good insights into navigating the grad school process, including useful advice about how to map out important milestones (e.g. how to publish, navigating conferences, and most importantly setting yourself up early to be successful on the job market.)

1

2

3

[4] (http://www.amazon.com/Getting-What-You-Came-For/dp/0374524777/ref=pd_sim_14_2?ie=UTF8&dpID=41H6-kRMd5L&dpSrc=sims&preST=_AC_UL160_SR107%2C160_&refRID=07NB1JFQT1BE3E6NARD9)

u/NullZebra · 2 pointsr/ehlersdanlos

Yeah, the fatigue sucks :( ... The "Joint Hypermobility Handbook" (a great reference for EDS symptoms and management suggestions) states that certain medications can combat fatigue and lack of focus. Common ADHD medications like Vyvanse can help. You should talk with your primary care doc.

u/craftywalnut · 2 pointsr/cscareerquestions

Yeah, it's normal at first. But eventually you'll recognize the patterns and be able to solve most problems, even if not in the most efficient manner. Hash tables are helpful for a lot of these problems.

I recommend buying Cracking the Coding Interview and reading up on strategies.

Also, before you go look at the answer try "cheating" by clicking on the "show tags" button. Sometimes it gives a big clue about what kind of data structure or algorithm type to use (like DP or greedy).

u/ChickenConsideration · 2 pointsr/cscareerquestions

no worries, happy to help.
This book is pretty well regarded for tech interview practice.
https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X


u/dEAthdEAlEr69 · 2 pointsr/cscareerquestions

Make sure you can whiteboard all the easiest questions from this book: http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

But do so in a way where you are not memorizing answers but instead learning the concepts and the problem solving techniques. A side benefit is you will almost certainly write better code and find more elegant/performant solutions at your current job as well.

u/peppage · 2 pointsr/malefashionadvice

That's a difficult question to answer, there is tons of information about interviewing but some of it relates to google type interviews. I've had all kinds of interviews and I'm not sure I prepared correctly for any of them.

Some of them were based on knowing how to rewrite a linked list and some of them were just based on my personality. I failed a lot because sometimes those questions are more about memorizing an answer than actually knowing what you're doing. Which is complete bullshit. Fuck everything about taking a quiz during an interview.


This is all I have saved now:

u/seanbrown99 · 2 pointsr/javascript

I'm self taught as well and decided to help bridge the gap in 2 ways:
Read this book...Its not gospel for how every interview will go, but will give you an idea of how a CS heavy interview might go:
https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

If you have enough time, follow the videos in this course and also get the pdf of the book. The topics will be quite dense at first, but keep at it and they will eventually make sense:
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/calendar/

To reiterate the same as others, its meant to weed out people who don't have a CS background; but don't be afraid to say you don't know something. Use that as an advantage and come prepared with situations where you didn't know something, but were able to read up/comprehend it and then applied the knowledge as a new skill :) Its impossible for everyone to know everything as a developer, we can only keep learning :)

u/Sinistersnare · 2 pointsr/UMD

If you want to make a videogame, you could use what you know from Java and make a game with libGDX, or join the Game Developers Club and work on a team to make a game. Games are good projects to show to possible employers.

A lot of internships at small local companies wont have super crazy tech interviews, but I would suggest getting Cracking the Coding Interview if you want to see some example questions to prepare.

Also, I have never put my GPA on my resume, and I have done pretty well for myself. If your GPA drops under 3, just drop it from your resume and only give it if a possible employer asks.

u/boognerd · 2 pointsr/nba

I'm in the industry (in PHX) and just got a new job. Got a job directly out of school, spent 5 years there and started applying for new stuff. Not sure how many interviews you've been on or if they do interview interns usually but I'd recommend doing as many practice interview questions (both technical and behavioral) as you can. This book was really useful: http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X/ref=sr_1_1?ie=UTF8&qid=1396631167&sr=8-1&keywords=cracking+the+coding+interview IMO that same advice applies to your first full-time job.

u/peterlongnguyen · 2 pointsr/learnprogramming

It's going to be tougher switching to a larger, HR-heavy company, so my answer is focused on smaller companies.

  • No idea on your current/desired title, salary, location, or skill level, but I think bay area startups generally like seeing (live) projects/actual experience, initiative, and a sharp mind. Some inevitably will require certain degrees or test you rigorously on data structures or core cs fundamentals, but there's no harm in applying and mentioning all the extras you do on the side. If you feel so inclined, you could mention that you'd be willing to start off as QA or devops (if you've got the skills). This is something you can do now, without taking any extreme steps.

  • For a great crash course on cs interviews, buy, read, and practice http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X/ref=sr_1_1_ha?ie=UTF8&qid=1370116024&sr=8-1&keywords=cracking+the+coding+interview
    It's got five stars and 180-something reviews for a reason.

  • Attend meetups and tech events around your area.

  • If you're ready to drop it all and invest about 13k or so to dive headfirst: http://devbootcamp.com/ The workload is intense, more than full-time, but they have recruiting relationships with companies, and wikipedia reports that "95% find jobs with an average starting salary of $85,000."

    Good luck.
u/koolex · 2 pointsr/cscareerquestions

I think people in this comment section will do a good job with the ideas, but here are some questions you should know. Maybe some are fairly hard since you seem to be playing down this interview, but you can never be too prepared. Some of these are from: an Amazon interview me and my friends went to, other interviews I had, internet, and a book I read.

Java Questions:

"Whats the difference between final, finally, and finalize in Java?"

"How does garbage collection work in Java?"

"Whats the difference between HashMap and HashTable in Java?"

"Whats the difference between String, StringBuffer, and StringBuilder? What are the advantages and disadvantages of each one?"

General questions:

"Tell me everything you know about HashMaps and then implement a simple HashMap (lets say key of type String and value of type String, don't bother with any fancy java generics)"

"How do you modify your HashMap implementation so that it can pick a random element in O(1) time?"

"What is the range of a 32 bit Integer"

"How do you rotate a 2D matrix 90 degrees?"

"Explain and give the average and worst case complexity of: Heap Sort, Bucket Sort, Radix Sort, Quick Sort, Merge Sort"

"What is the worst possible set of data for Quick Sort and how long does it take (without any fancy optimizations, just the classic vanilla version). How do we help alleviate this case?"

"Implement Quick Sort (vanilla/classic version) and Merge Sort"

"What are the 4 famous/common simple recursion functions"

"How do you find the biggest substring palindrome in a string in O( n^2 )?"

"How do you reverse a linked list?"

"Explain how Dynamic Programming works."

You should probably also run through fizz buzz, it'll only take you a few minutes, but the last thing you ever want to do is make a stupid mistake on such an easy question haha.

Every interview I have ever had, they grilled me on HashMap, so I would highly recommend you know that data structure in and out.

And of course, if you're going to try and solve these problems, do it in pen and paper. That's how the hardcore interviews work.

Talk out loud explaining your reasoning while you do it. Interviewers want to hear how you think, and why you make your decisions. This is arguably more important then getting the answer right.

Never disagree with your interviewer.

u/biochromatic · 2 pointsr/cscareerquestions

It would help to identify what point you made it in the recruiting process.



Recruiting Step | If you didn't make it here...
---|---
Company Reads your resume | Apply to lots of companies, network (tell everyone you're looking for an internship), and attend recruiting events / career fairs
Company invites you to initial interview | Polish your resume / cover letter
Company invites you to follow-up interview | Improve your interviewing skills
Company offers you an internship | Improve your interviewing skills

Improving your interviewing skills includes learning how to communicate, but more especially for CS related interviews it includes learning how to complete those coding style questions you'll be asked. This book might assist with coding questions.

The few times I have been asked by my employer to participate in recruiting I mostly looked for candidates who correctly knew how to use data structures, understood Big O notation and correctly analyzed their code using it, and also clearly explained what they were doing as they were solving the problem. Candidates were less desirable when they sat there silently not explaining their thoughts to me or writing a really convoluted solution that completely ignores well known data-structures / algorithms (even though we told them they were welcome to use any that they knew).

u/balloonanimalfarm · 2 pointsr/AskProgramming

> However, something pulled me away from Marketing, and I decided to try and go the tech route. I took two basic programming courses (Java/C++ & SQL) at school however because of lack of time did not do a minor/major.

From this I would suggest data science, but it looks like you're already into that. If you like programming, maybe find a marketing position that needs some programming rather than going for a full-on programming position. That way you can ease yourself in.

> I consider myself pretty creative, and I think about things deeply/logically

That's great!

> however even when I programmed I never felt like a smart/clever programmer, more so watching what others do and replicating.

Don't worry about that too much. Programming is a trade--a very sophisticated and exacting one, but it's still a trade. There is no silver bullet to gaining great programming skill. You need to make 10,000 mistakes to be a master.

I've been programming for ten years now, others have told me I'm clever or a good programmer so I suspect it's more or less true. All of my clever tricks, good ideas and ability to make difficult things simple come from others. When I see something I like, I remember it. When I build something later I can pull out my bag of tricks and build elegant solutions to complex problems. Study other people's code and learn from it. Try to figure out why they chose to make every decision they did; every line tells a story.

If you want a good place to start with that, look at the JavaScript source files for 2048 (ignore the ones that end with polyfill). It's one of the most beautiful pieces of code I've seen.

To quote this

> Every programmer occasionally, when nobody's home, turns off the lights, pours a glass of scotch, puts on some light German electronica, and opens up a file on their computer. It's a different file for every programmer. Sometimes they wrote it, sometimes they found it and knew they had to save it. They read over the lines, and weep at their beauty, then the tears turn bitter as they remember the rest of the files and the inevitable collapse of all that is good and true in the world.


> I did receive a Data Science internship, as I knew the answers to basic programming questions and was able to think through a problem logically. However, today I had a technical interview where I had to join a chatroom and write pieces of code for the person. I struggled with 2 out of the 3 problems and they were fairly simple-- a little embarrassing.

These types of things are designed to trip you up and separate the people who can't program at all with those that can. The link is short and worth a read. If you want to practice read Cracking The Coding Interview by Gayle McDowell.

> So now I am really doubting going to programming track as maybe I am not 'talented'/capable of really performing that type of thinking, especially for an entire summer & career. Any advice or tips is greatly appreciated!

Impostor Syndrome runs high in CS. There's too much to keep up on and it's impossible to know it all. In a way, we're all constantly beginners. Learn as you go and don't be afraid to ask questions, nobody knows everything.

u/wallstop · 2 pointsr/cscareerquestions

Generally, the more weird something is to outsiders, the more you should take a hard look at the practice and actually weigh whether its "good" or not. This tends to be a "smell" of bad practices/coding techniques.

If you've stepped away from STL and general algorithmic-y implementation details at your (current? old?) job, I would highly recommend this book as a refresher. It's a lot of high quality algorithmic and data structure problems, solutions, and general information.

u/euid · 2 pointsr/cscareerquestions

Open source projects aren't what you do to get a job. They're what you do because you love to program. You can see it in the code and the attitudes of contributors to them, and sense it in their heated debates on mailing lists and bug trackers. There's a real love of the craft present in people who work on OSS, and that's why people like to hire contributors, or suggest contributing "to get a job".

I'm not suggesting that. I'm saying you will grow far more and learn much more important things by contributing to a project that other people work on. Programming is a community effort even more than a personal one - the interfaces you build, the libraries you maintain, packages that get released, and the experience carried with you that you share with your team - those are the product of good code. And they are a community effort.

No, the easy bugs have not been fixed in every project out there. The easy bugs are mindless, boring work and people don't like to do them. Not every project can afford to keep these down on their own volunteer effort.

I think you should dedicate time to open-source because right now, you have nothing better to do. Look for a job and build things. Those are two real goals and they'll come to complement each other as you work down that road. You'll gain experience you can talk about in an interview, put on a resume, and maybe will get you hired as side-benefits.

Another thing: you have an IS degree. Which means you might lack some of the rigorous material taught to CS students. Brush up on trees, sorting algorithms, and basically the stuff mentioned in Cracking The Coding Interview while you're not working on a big project. That book is full of tiny pieces of the puzzles that confront the daily lives of programmers. Each problem you finish on your own will build your experience. When those problems come up in a project, or an interview, you'll breeze through them and have time to focus on the hard stuff.

u/mlindgren · 2 pointsr/slatestarcodex

> Given a few years, could you teach your mom (or dad) to pass a technical interview at Amazon? How about your best friend from high school?

I'm not sure this is the right question to ask. Technical interviews are notoriously bad at selecting for actual competent software engineers. If you spent years just studying a book like Cracking the Coding Interview, to the point that you had memorized most of the problems and solutions and were able to infer patterns from them, you might be able to pass a technical interview loop. But you probably wouldn't actually be a good software engineer.

But to answer your question, I think it would be very hard to teach this to my parents. They're both smart, but they lack the foundations for for computer science, and they're old enough now that I think it would be pretty hard for them to adjust to the ways of thinking required.

My best friend from high school... also unlikely. That person is not dumb either, but I do think that CS requires, as /u/brberg put it, "a certain way of thinking that may not be teachable." Whether or not it's learnable is another question, but if so I think you have to learn it through practice rather than instruction.

u/smalljd · 2 pointsr/iOSProgramming

Check out Cracking the Coding Interview , it has tons of practice interview questions that cover common data structure/algorithm questions.

u/14736251 · 2 pointsr/jobs

You might want to try cross posting this to /r/cscareerquestions, to get more discussion. However, since you posted this here, I will try and answer your question. First off, some software engineering job interviewers will have unrealistic expectations. However, it's unfair to say that all or even most software engineering interviewers have too high expectations. After all, there are huge differences in quality between good and bad developers. The issue is that there isn't a great way to tell how good of a software engineer someone is in a short interview. Asking technical questions about algorithms or aspects of programming related to the job is one of the best ways of measuring a developers quality within the constraints of an interview.


By the way, if you feel that your skill as a developer isn't coming through in interviews, you should buy the book "cracking the coding interview". I have found it very helpful in preparing for technical interviews. One great piece of advice that it has is that for preparing for technical interviews you should write code on paper not in an IDE or text editor. This is the kind of thing that separates being a good developer and seeming like a good developer in an interview.

Tl;DR Some interviewers have unrealistic expectations, but not all or even most.

u/Delta-tau · 2 pointsr/DataScienceJobs

I'd recommend this book. But frankly, it is quite old school to ask such type of questions in a DS interview. This is mainly material for engineers.

u/donjulioanejo · 2 pointsr/jobs

Looking at your post and your other replies in this thread, I feel like you simply don't do that well in coding or technical interviews.

Now, I'm IT, not development, but a few people I've met swear by this book:

https://www.amazon.ca/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

Buy it or find a PDF and get cracking :)

u/149244179 · 2 pointsr/cscareerquestions

This book is often recommended. It covers a lot of the whiteboard type stuff. https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

Lookup common non-technical interview questions and prepare answers ahead of time. Stuff like "what is your biggest weakness?" "Describe yourself in 3 words." "What do you enjoy about programming?"

Personally, I would go into the first 4-5 interviews fully expecting to fail. Your goal should be to learn how to interview, not get a job. Write down any topics or questions you did not know. After the interview, study those so you have answers for the next time they are asked.

The answer "I don't know" is a perfectly good answer. If you knew everything already you wouldn't be applying for entry level positions.

u/GoatSnake66Six · 2 pointsr/uofm

Like the other commenter said, intro to algorithms by CLRS is a great one. However, if you're trying to do interview prep I highly recommend Cracking the Coding Interview. It has tons of fantastic coding questions with detailed solutions. Big 4 companies use problems directly from that book sometimes.

u/1finite · 2 pointsr/cscareerquestions

I can address a couple points from the perspective of a new-grad software engineer in the Silicon Valley with a lot of internship experience.

Having no experience hurts you regardless of your age or school status. I'd recommend actually finishing some personal projects so you have something to show and talk about in an interview.

Charm and enthusiasm are important for CS interviews, but less so than in softer fields. They can easily test your programming strength in an hour interview, unlike with many other professional skills. In a CS interview they are going to want to get an idea about your actual CS abilities.They'll ask questions about algorithm complexity and design and will probably have you do some coding on the whiteboard. I'd recommend reading a book like Cracking the Coding Interview and working through every single exercise in the book.

u/dragonnards · 2 pointsr/cmu

I would highly recommend reading this book.
My brother is a CTO of a tech startup and he used it to practice for his coding interviews at Amazon and Facebook, and still references it when interviewing candidates today. It lays out a great timeline for long-term preparation for coding interviews.

u/021fluff5 · 2 pointsr/cscareerquestions

Do you have evidence of what you're capable of? (Contributions on Github, a website, a portfolio, published researched papers, etc.) If they have an idea of what you can do before you start the interview, that'll help them a) tailor questions to your skill set and experience, and b) understand that you do know what you're doing.

I've seen Cracking the Coding Interview recommended on this subreddit quite a few times - the author probably has much better advice than anything I can think of. :) Best of luck.

u/jonhanson · 2 pointsr/programming

> cracking the coding interview

First hit on google.

u/cruiseplease · 1 pointr/mormonpolitics

Read the comments.

https://www.amazon.com/Who-Really-Cares-Compassionate-Conservatism/dp/0465008232

The relationship between ideology and donations is spurious.

Religious people tend to be conservative.

Religious people also give to charity.

So, if it looks like more conservatives give to charity, it's because they're religious, not because they're conservative.

In fact, religious liberals are similar to religious conservatives when it comes to charitable giving.

u/giveitawaynow · 1 pointr/Libertarian

Never read it, but if you can find a PDF might be an interesting read:

http://www.amazon.com/Who-Really-Cares-Compassionate-Conservatism/dp/0465008232

u/tellyouwhywrong · 1 pointr/AdviceAnimals

Read the book "Who really cares" it turns out that democrats give the least to charity by far.

Then look at this: http://twitchy.com/gregp-3534/2017/03/15/trump-paid-a-higher-tax-rate-than-obama-comcast-and-bernie-sanders/

It's all bullshit window dressing to get votes.

u/tmster · 1 pointr/changemyview

https://www.amazon.com/Who-Really-Cares-Compassionate-Conservatism/dp/0465008232

Below is a link to one of the bigger studies that is often cited. I don't think it does justice to the full weight of the evidence and aggregated research that Brooks' book provides, but I do want to provide something to easily read for free:

https://www.philanthropy.com/interactives/how-america-gives#advanced

I've never seen a single study that has ever shown the opposite to be true, but I'd be open to reading what anyone knows about and can provide a link to. Again I want to help change OP's mind, but not based on false premises. I'm open to my mind being changed too!

u/_InexplicablySo_ · 1 pointr/nerdfighters

Ah, yeah, I did see that Kristof op/ed. I don't necessarily agree with some of his conclusions but it was still an interesting read, and he does make the point that it's more complicated than it seems.

Also, Kristof cites the 2006 book Who Really Cares, which makes the argument that conservatives tend to donate more to charitable causes than liberals and where, I suspect, Takuwind is basing their claim on. I'd have to read the book to have a meaningful opinion on it, although I do want to point out that an academic paper published in 2013 disputes some of the findings in the book.

u/keypuncher · 1 pointr/Conservative

Beliefnet mentions the book and the research, so I linked to it.

Would you be happier with just an Amazon link to the book and no detail?

Here's a direct link to the 1996 General Social Survey also mentioned.

u/skbryan · 1 pointr/careerguidance

No problem. I looked more into the PDF and it appears that this edition/version explains the bare minimum of the data structures and algorithms so you are forced to use this as a reference. This book explains everything much better, but still you will need to use other resources: http://www.amazon.com/Programming-Interviews-Exposed-Secrets-Programmer/dp/047012167X/ref=pd_sim_b_15?ie=UTF8&refRID=17FWN71ZH0FWQMJJKB2Q

If you have any more questions you can reply here or PM me.

u/Krantastic · 1 pointr/self

There is also http://www.reddit.com/r/EmploymentAssistance/ but the top post is currently "Looks like this reddit fizzled and died." You could also try the programming or coding subreddits for advice particular to CS interviews.

It's good that you're already practicing up on a whiteboard. I think practice and knowing how to prepare are key for interviews (general statement is general). You should consider trying to set up practice interviews if you know anyone in the field with more interview experience. Or you could try explaining CS concepts and solutions to your friends. Perhaps you could get used to being at ease in an interview by practicing with someone you know.

There are various books you could buy, or perhaps find in a library, on interview help and using whiteboards in particular. I think I've seen this book recommended here before but I can't remember the context.

Good luck!

u/yellowstuff · 1 pointr/finance

It's been a while since I interviewed, and some more specific information about the role would be helpful. But as general advice, you should do the exercises in Programming Pearls, and not as good but still helpful Programming Interviews Exposed. Project Euler also has good programming finger exercises.

If you need to write code on a white board practice that specifically.

u/LordHumongous · 1 pointr/programming

There's also a relatively cheap book on programming interview questions.

u/schoolisbroken · 1 pointr/jobs

This is what I came here to write :) Also, see this book as well.

u/themandotcom · 1 pointr/sanfrancisco

> reading a report from an economist for Trulia

what about other economists who would for state universities, like Enrico Moretti or Edward Glaser or any number of other economists? Will you accept their peer reviewed claims?

u/yazzid · 1 pointr/Austin

It wasn't the 'best of' lists that made people move to austin or seattle, it was the strong, booming economy. I recommend this book to understand Austin's growth:

https://www.amazon.com/New-Geography-Jobs-Enrico-Moretti/dp/0544028058

Every information/innovation jobs creates 5 service jobs. Having a microsoft or dell in town allows thousands of hipster bars and restaurants.

u/MusicalWrath · 1 pointr/PhD

Thank you! One more suggestion is that you read The Professor Is In by Karen Kelsky, and the earlier the better. Many doctoral students are in the mindset that they are a student in relation to their professors, when actually, they should be in the mindset that they are future colleagues of current professors. They go to class, they complete their assignments, they go home, and think that's it. When actually, they should start thinking of themselves as colleagues, while respecting certain boundaries, as well as network and continuing productivity in the profession. This goes back to the creating knowledge rather than learning knowledge. This book should definitely make you think about the higher education profession as a whole and will make you better prepared.

u/c875654 · 1 pointr/AskAcademia

A very kind person recommended me this book the other day on this sub https://www.amazon.com/Professor-Essential-Guide-Turning-Ph-D/dp/0553419420

I have already learned SO much and I am barely a quarter of the way through. The woman who wrote it also has a blog that is absolutely stuffed with advice.

u/shorthairtotallycare · 1 pointr/ehlersdanlos

No problem. Shame you can't get physio, that's made the biggest difference for me :( to the point that I pay out of pocket and forgo other things so I can do it... might be worth going for a couple of sessions even just to get evaluated and provided with exercises you could do at home, I've done that a few times when it wasn't in the budget to go regularly.

Failing that, if you have definite diagnoses for particular MSK injuries, it's sometimes possible to find rehab protocols online. (Search phrases would be like, for e.g. "MCL rehab protocol") - that should take you to some patient handouts from insurance companies and hospitals, or the AAOS (see the "education" section) - may be helpful. Though not EDS specific, of course :/

I believe there are also a few books people have recommended on here, about self-care & exercises to help. I've seen the Muldowney Protocol referred to often, and this one too, I believe (can't personally vouch for either).

Good luck!

u/dewayneroyj · 1 pointr/learnprogramming

Check out this book Cracking the Coding Interview . It’s definitely worth it.

u/junkpizza · 1 pointr/cscareerquestions

I have been interviewing the past few weeks. The 2 things that have helped me prep:

  • HiredInTech - They have pretty good guides on how to prep for interviews. As someone who has interviewed 100s of people for Amazon it is pretty solid.
  • Cracking the Coding Interview Book - Has great example questions and tips for interviewing
u/stratovolcano · 1 pointr/UofT

Book: Cracking the Coding Interview Learn it and learn it well. Also, don't forget Java after 207. Very few PEY jobs use C (which is the primary language for second/third year), so good java skills are more important to have.

u/NotAGeologist · 1 pointr/cscareerquestions

As /u/Amarkov said, you're not screwed and you really should put in the time to learn basic algorithms and data structures. But, I also think it's a bad idea to go overboard.

For example, you should know why and when you'd use a binary search tree over a hash table, and be comfortable implementing basic graph algorithms (BFS, DFS, shortest path). But, much beyond that, and you are likely better off spending your time actually building stuff and developing your coding skills. I know most of the big tech companies will grill you hard on CS, but many smaller companies will be more concerned with how quickly you'll be productive with their tech stack. Rather than have you implement a graphing algorithm, they'll want to see that you're comfortable with Java's threading model or writing a JQuery plugin or working with Active Record or whatever.

I'd recommend grabbing either of these books and working through at least 2 or 3 questions in the chapters you're weak on. At a minimum, they'll help shine a light on your blind spots.

u/0fficerNasty · 1 pointr/AdviceAnimals

Go to class, visit the career fair every year (or twice if your college does it), have a resume, do projects, DO INTERNSHIPS.

The future is bright for us CS guys, my friend. Just gotta get out there. :)

And read this book. Best money I spent at college. Wish I had it sooner!

u/jhoneycutt · 1 pointr/cscareerquestions

It happens. Try not to worry about it too much - things are going to be OK. There's a job for you out there.

Practice a lot. Find lists of interview questions online, and try to code all of them - first on paper and then with the help of a computer. Learn them through and through, so that you can easily recognize variations of them. Consider getting this book.

Feel prepared in your next interview. Good luck!

u/Befriendswbob · 1 pointr/cscareerquestions

I'm sorry you're going through this. Other commenters have said it'll get better and stuff (which it will!), but below I've linked some resources I've collected over the years for you to use. Hopefully this will help!

  1. Cracking The Coding Interview
  2. Read through this site and this Wiki, really try to understand what it's talking about. Try some simple implementations of the patterns. The main thing with patterns is being able to recognize and apply them. Sometimes in reality they don't look as simple as the nice graphs on the page.
  3. This is another good article on good API design practices.
  4. This is a good article on writing Testable code.
  5. Here are some terms for writing good unit tests, you should Google these and start looking into it: Domain Analysis (Input and Output), Structural Analysis, Unit Test Patterns, Mocks, Test Driven Development.
u/KrustyKrab111 · 1 pointr/cscareerquestions

From what I've see lurking around here, this books seems pretty useful

http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

If you don't wanna spend the money, I'm sure there are pdf downloads avaliable online

u/donutbagel · 1 pointr/cscareerquestions

Starting your own projects or getting involved with open source projects shows initiative to recruiters when you apply again in the Fall. At the same time you could get ready for future interviews by studying technical questions and making sure you could answer basic behavorial questions well.

Its okay to not have internships the first 1 or 2 years. Being a freshman definitely makes it harder because you are not about to go fulltime anytime soon. I myself did not have any offers for the first two summers. But I did what I just described to you and landed a Big 4 company without any internship experience.

The fact that you already tried applying will help you in the future because you will learn from any mistakes you may have made.

These are the books I used, like many others:

http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X/ref=sr_1_1?ie=UTF8&qid=1395274746&sr=8-1&keywords=cracking+the+coding+interview

http://www.amazon.com/Programming-Interviews-Exposed-Secrets-Landing/dp/1118261364/ref=sr_1_1?ie=UTF8&qid=1395274783&sr=8-1&keywords=programming+interviews+exposed

The first contains shorter explanations of topics and mainly questions and solutions. The second has longer explanations of what you need to know for each topic. Very great resources that helped me become comfortable with interviews.

Have you had your resume reviewed by anyone? I thought my resume was solid 2 years ago but now that I look back at it, there were tons of mistakes.

Hopefully this helps.

u/PsYnCere · 1 pointr/UMD

If you're serious about going into computer science, I would strongly recommend taking a mathematics course, just to get you thinking logically. (You're going to end up taking 250, but still, it's incredibly helpful)

I'm not going to mention the coursework partly because /u/lordlicorice does a good job already and partly because I'm also a freshman like you, and I can't really advise anything from experience. I'd just suggest reading Introduction to Algorithms, which is a pretty well-known book to get started. I've also picked up Cracking the Coding Interview, just to help with some tech internships I want to get into. (My professor implied sometime back that you should have at least 330 before considering internships, but some of my friends have done some even before 216)

u/toastykittenz · 1 pointr/AskComputerScience
u/Silchas_Ruine · 1 pointr/cscareerquestions

I've been looking to prepare for some Internships for Summer 2015. I've heard a lot of good things about Cracking the Coding Interview, but I was wondering what everyone's thoughts are on Elements of Programming Interviews.

u/DanMD · 1 pointr/cscareerquestions

Negotiating a little sounds like a good idea. Offers are by no means absolute, that's why they're called offers :).

It sounds like you are not too familiar with interview questions which are related but not at all reflective of your "CS skills", if there even is such a thing (in my opinion CS skill is a collection of talents). You should read this book: http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

Read this book backwards and forwards, multiple times. The tech interview process is a game that can be mastered.

u/inhalingsounds · 1 pointr/portugal

É mais para exercícios de código propriamente ditos, mas não posso deixar de recomendar um livro excepcional: Cracking the Coding Interview: 150 Programming Questions and Solutions.

u/iamyourdad · 1 pointr/cscareerquestions

I was recommended by another redditor to get this book and read the heck out of it. I just received it and it seem to have a lot of good information.

u/kiwijafa · 1 pointr/ucla

"I dont want to do the CS major as it seems too bureaucratic and without direct application in the employment sector" uh what? CS has a very direct application, which is software engineering or algorithm development. Both are essential in industry. Really confused by what you mean by "too bureaucratic"

  1. If you're looking to get employed in software look at Cracking the Coding Interview

    https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

  2. Take CS111 as well, you will probably get asked operating system concepts during your interviews
u/LokiNinja · 1 pointr/gamedev

Practice, practice, practice. Look up some programming questions or exercises and practice writing the code for them on paper without the help of a compiler. At each step of the process explain out loud what you are thinking and what you are doing/why you are doing it that way. Once you have a working solution, type your code directly from the paper into your compiler of choice and verify that it works. This is a good book that can be used to help prepare for the technical portion. It covers a gamut of technical questions starting with basic string processing and moving to much more advanced topics such as performing swaps without temporary storage etc: http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

u/CodeTinkerer · 1 pointr/cscareerquestions

Write a document of things you think you need to learn, in priority order, and have another daily journal where you write down your thoughts/accomplishments each day in meeting anything on that first list.

Everyone fears wasting their time learning the wrong things. Alas, it's going to happen. Either you waste your time learning the "wrong" things, or you don't learn anything at all (because your fear stops you), or you constantly dabble (learn an insignificant amount about everything). I don't think dabbling is horrible because it gets you a picture of the landscape, but if you want to make progress, you need to pick a few things to work on.

Look up books on handling technical interviews, e.g. http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

And practice your tech interview skills, since you need a good interview to get to that internship.

u/CSstudentNosib · 1 pointr/learnprogramming

https://github.com/jwasham/coding-interview-university


https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

​

Those are some solid resources there as well. From my experience with interviews (mainly being internships) a common question is what projects are you currently or have worked on. In my personal opinion focus on developing your own personal projects rather than making small contributions to open source is better for learning. You can reinvent the wheel here, that's the point of it.

​

Good luck :)

u/GuinnessToucan · 1 pointr/cscareerquestions

Well, I would say you should try to work your way through this: http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X
The other thing you might want to do is find a personal project you're interested in and contribute/complete it. When you work on your project you would be able to brush up on your skills and have something to talk about in your interview. As far as tutorials go, you could try Coursera, Udemy, or MIT's open courseware. If you have any of your projects or textbooks from school you could look over those and try to "improve" your work if possible. I'm new to this sub but have been visiting daily for a quite a while and I think these things would all be something to look into. You might also want to look into finding an internship where the pressure might not be as high and the compensation won't be as high as if you were full time but you'd get some experience and if you do a good job you might get an offer at the end of your tenure. Best of luck!

u/duskwastaken · 1 pointr/portugal

Acabei a licenciatura há 3 dias atrás e vou trabalhar para o UK no dia 1 de Agosto. As portas abriram-se por ter feito um estágio de verão (no verão passado) com esta empresa e eles terem gostado e decidido avançar com uma proposta. Para mim esta é a forma mais fácil de conseguir sair (agora para ti já é tarde, infelizmente).

Tens vários caminhos a tomar. Se quiseres ir para os Estados Unidos, especialmente para Silicon Valley, tens de ter em mente que as entrevistas são puxadas (em termos de algoritmia, estruturas de dados, desenho de sistemas...) mas que financeiramente se fores aceite vives muito mas muito bem. Se for esta a tua visão aconselho-te vários livros, em especial o Cracking The Code Interview e vários websites de preparação como Codeforces.

Por outro lado, se quiseres ir por exemplo para o UK, Alemanha, Holanda esta componente de algoritmia não costuma ser tão avaliada. Geralmente tens uma entrevista mais técnica e possivelmente algo mais prático para fazeres durante uns dias e depois mostrares o que fizeste. Se preferires esta vertente, tens aqui uma lista com centenas de empresas que seguem este conceito.

Existem vários recursos para encontrar estas empresas. Por um lado recomendo a Landing Jobs para veres várias ofertas. Um truque que podes tentar é começar por spammar as empresas que encontras e que gostas a propor ires trabalhar com eles no Verão (embora agora já comece a ser tarde!!) e se eles curtirem de ti de certeza que te convidam a ficar. Sei de várias empresas que estão há meses e meses a tentar contratar e não conseguem arranjar pessoal...

Quanto à situação do mestrado, sinceramente pelo que tenho visto as empresas não ligam nada, mas posso estar enganado.

De qualquer das maneiras, não tenhas medo em mandar montes e montes de emails nem que seja só a perguntar se têm oportunidades para recém-licenciados ou para estágios de verão (remunerados claro, não há cá exploração). Vais ficar surpreendido com a quantidade de empresas que te vão abrir a porta.

Qualquer dúvida apita!

u/cutebabli · 1 pointr/cscareerquestions

You should revise, among other things, the design section in Cracking the Coding Interview! book.
Also, thanks for sharing your experience, I am sure there are others having similar experiences.

u/ghking · 1 pointr/cscareerquestions

This book has really helped me in the past. Know your OOD concepts and do a few practice problems right before the interview. They really want to see your thought process rather than the correct answer, so be sure to think out loud and take your time. Good luck!

u/democratizetech · 1 pointr/cscareerquestions

As anyone working in tech will tell you, landing a job/internship can be attributed to some combination of past work, interview practice and luck.

Some good resources for interview practice are https://www.hackerrank.com/ and https://coderbyte.com/. There's also Cracking the Coding Interview, which is a must have for any technical interview prep.

To find a side project to work on, I would suggest trying to solve a small problem you have in your daily life with software. For example, maybe you want to brush your teeth for longer, or remember to do something everyday. A project like this will allow you to both write actual code, but also talk about your process with deeper understanding to interviewers.

Besides that, there are other great online resources that can help you learn more nuanced aspects of software engineering like https://egghead.io or https://doyen.app.

u/squidiron · 1 pointr/TheRedPill

congrats bro.

but word of advice on the programming interviews. literally all they care about is how well you answer the questions. as someone whose been on both sides of the table - many of the people doing the ebaluating are neckbeards so maybe this shit has a subconscious effect but youre evaluated on how well you answer the questions check out: http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X.

fwiw: i'm talking about the elite places like google, facebook, etc. maybe lower tier places care about confidence, dress, etc. for programmers but the top don't.

but everyone else in life does so it's def something still hella worth doing.

congrats on your progress, keep it up.

u/mogeb · 1 pointr/computerscience

There's this book called "Cracking the coding interview" which is very popular. I actually had questions straight out of this book while interviewing for some companies. On Amazon: http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X/ref=sr_1_1?ie=UTF8&qid=1420949854&sr=8-1&keywords=cracking+the+coding+interview

u/crystal__math · 1 pointr/math

Master this and you'll have no trouble with future interviews (minus nerves). You could certainly try applying to Google again next year, as a previous rejection won't be held against you. Also you could look for these "1 year internship" positions at places like Google that transition you to software engineering for people with a weaker background in CS, it pays slightly less but I'm sure someone like you wouldn't have trouble getting a full time offer after that. Also if you have money on hand, you could apply for a Masters of Engineering at a top school, pay 1 year of tuition to get some solid coursework + a brand name on your resume (however unfair it sounds, school name along will get you interviews).

u/heartuary · 1 pointr/uwaterloo

Here is a book that will help you with those tech questions during interviews: http://www.amazon.ca/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

u/F00zball · 1 pointr/learnprogramming

Read This

Was this your first technical interview?

u/HardcoreWaffles · 1 pointr/learnprogramming

Do you know what team your interviewing for? SDE, SDET, PM?
Might I recommend Cracking the Coding Interview? One of my interviewers read 3 questions straight from it

u/ElectricMoose · 1 pointr/uwaterloo

Go find and read/memorize "Cracking the Coding Interview". It's the one book I've had consistently recommended to me by Software Engineers, hiring managers, and other co-op students :)

http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X

u/Grimsvotn · 1 pointr/learnprogramming

You could try problems at online interview question sites like http://www.careercup.com/page .

The reviews for this book sound good, especially because the few 1 - 3 star reviews are about silly stuff, and I think it's by the CEO of the careercup site: http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/product-reviews/098478280X/ref=cm_cr_pr_hist_4?ie=UTF8&filterBy=addFourStar&showViewpoints=0

It is a pretty inexpensive book.

u/T_Munchakoopas · 1 pointr/cscareerquestions

I highly recommend this book.

This one is also great.

Not only do these provide a lot of good examples of how the interview process works at Google (as well as Facebook, Amazon, Microsoft, etc), but they also provide a lot of good information on things you can do to prepare yourself months or even years before trying to start the process.

u/allthecoffeesDP · 1 pointr/ProductManagement

You might want to check out this book- Cracking the PM Interview .It's a little dated now, but talks about what it's like to interview at a number of companies, including Facebook. Can I ask a question in return? I'm looking to pivot into the PM role. However - I lack a technical background. Any recommendations on how to address that in general or in the interview? Can I ask what small/medium sized companies you worked at? All people talk about are the big 4-5 :)

u/whenihittheground · 1 pointr/careerguidance

To me it sounds like you want to explore product management.

Check out this book:
Cracking the PM Interview

It has a chapter on transitioning into the role from a developer, why technical experience is vital and whether or not you actually need an MBA. It won't have all of the answers but it sounds like it's asking the same types of questions that you are interested in. Hopefully it gives you a better perspective on the role and whether or not you'd really like to pursue that world.

u/adaeth · 1 pointr/cscareerquestions

Cracking the PM Interview is probably pretty legit, especially since Gayle & Asana, the two authors, both worked at Google.

u/TalentedRickyBobby · 1 pointr/ProductManagement

Can’t recommend this book enough (300 pages):

Cracking the PM Interview: How to Land a Product Manager Job in Technology https://www.amazon.com/dp/0984782818/ref=cm_sw_r_cp_api_i_kWKyCb3XHZKFX

“This is Product Management” Podcast: Great material that’s pretty dense with little bullshit. Could easily snag some great management theories and jot them down.

YouTube Nir Eyal. Wrote the book “Hooked: How to Build Habit-forming Products.” He’s a great speaker. Beyond him there are a ton of great YouTube videos of people in product, ProductCon videos might be a start.

Eric Reis blog.

u/xorflame · 1 pointr/cscareerquestions

I've heard Cracking the PM Interview is very helpful

u/_detour · 1 pointr/cscareerquestions

I'm doing EE/CS at a top uni. as well, and I was able to land a PM job after some hard work. Some tips I'd give:

  1. Make sure you really want to be a PM, really research what it's about, and imagine yourself working everyday as one, will this make you happier?

  2. Dedicate a technical class worth of time to do applications, interviews, emailing, and interview prepping. PM jobs are harder to find, particularly for new grads. You want to maximize your chances. I was spending nearly 3 hours each day on recruiting-related stuff during my peak month, going to at most 3 on-site interviews per week.

  3. Taking business/entrepreneurship classes definitely helps, but make sure to not waste too much time learning the wrong things. For most new-grad PM jobs, you don't need to learn complicated economic mathematics or MBA-level management methods. You'd rather spend that time studying for interviews and analyzing the market.

  4. Framework, market knowledge, and interview prep can only get you so far. You really need to like thinking about this stuff and have a good product intuition. My friend wrote a great blog post about new grad PM and she has some great tips. I'll paste her "why PM" here:

    > - If you have a creative vision
    > - If you love to talk about or review products
    > - If you like wearing many hats
    > - If you like shaping the big picture
    > - If you have a keen eye for design, but also the technical chops to run with the engineers
    > - If you are a technical person who doesn’t see yourself simply coding all your life
    > - If you are double majoring in computer science and [business, psychology, economics, etc]
    > - If you enjoy getting messy with data
    > - If you don’t shy away from problems but instead actively look for solutions
    > - If you can explain ideas well
    > - If you are interested in what the users have to say
    > - If you enjoy people
    > - If you send well-written, actionable emails
    > - If you are the master of your inbox
    > - If you like to move around and not sit at your desk all day
    > - If you can stay organized and on top of deadlines
    > - If you are passionate about what you do

    If this list doesn't sound like you at all, then no amount of interview prepping will come through as passion, good vision, and intuition.

    Lastly, get the book called Cracking The PM Interview. I won't try to parrot some great interview and company specific knowledge in this book, it helped me a lot.

    TL;DR: Make sure you actually want to be a PM, spend a lot of time writing emails/applications and studying for interviews, only take classes useful to PMing, and read that book.
u/killingtimeatw0rk · 1 pointr/cscareerquestions

I highly recommend the Cracking the PM interview book. They thoroughly explain how to answer all these interview questions, and the book is tailored to Big Tech. It’s project/program management focused but the behavioral portion is applicable to engineers. And the advice isn’t overly brief or generic- it’s step by step exactly how you need to answer the question and also includes very thorough examples. I was Googling how to interview for Big N and found other folks who recommended this book. I read it and it’s helped me focus my interview prep sessions (still waiting to hear about offers!). If you answer questions the way they tell you to in this book, you will set yourself apart from all the mediocre people who just wing interviews.

https://www.amazon.com/Cracking-PM-Interview-Product-Technology/dp/0984782818

u/AgileRenoir · 1 pointr/ProductManagement

This is a great start! I'm going through a similar process of resume refinement right now, so I understand how much work is involved. I'm including a bunch of feedback based on what I've learned so far and had success with. I've also hired a couple of PMs as a part of my current role, which has helped with seeing what "clicked" for me when on the hiring-side of things. Apologies for the length in advance, hopefully this is useful.


  • Emphasize the tech aspects of your current work instead of mentioning construction. Was there any software involved, maybe the marketing website? If so, include how you optimized the site (A/B tests, Analytics, heatmaps, whatever). If you mention construction, tie it back to general product management.

  • As a PM, I can see that you contributed significantly to growth. 60% YoY growth is awesome! Your skill set potentially aligns with the role of a Growth PM at a SaaS company. Look into the metrics those type of PMs use and see if you can structure your resume around them. Note: Growth is a very specific skill set and a potential selling point. It might also pigeonhole you, so consider having a growth focused version of your resume and a general PM version.

  • Adapt phrasing of your accomplishments. Instead of "contributed to 60% YoY growth", consider phrasing like "generating 60% YoY growth". I know that normally you want to emphasize that your product's success is a team effort. With a resume, however, you need to set aside that humility and realistically look at the outcomes that you made happen. This will feel weird at first if you're not used to taking credit as a leader. That's a good trait to have most of the time, but your resume is one of the places where it's 100% okay to brag about the great work you've done.

  • Continuing the previous point, adapt each line of your resume to be focused on the outcomes you've delivered to your company as a PM. What were the results of your different responsibilities? How did you move the needle on key performance indicators? You might need to do some additional research to discover this, particularly if your company is less data informed. You're already doing this for a number of points in your resume, which is awesome.

  • I would check on this with a couple other people, but you should use present tense verbs for your current role and past tense verbs for previous roles. Both should have an active voice, not a passive one.

  • "aggressive timelines and multiple roadblocks" sounds really negative. I can tell that was a stressful project for you, but also something you take pride in. Restructure this line so it focuses on what you're proud about instead of what stressed you out. It will show you're resilient and don't hold grudges.

  • Revamp your background section, it reads a lot like an old school objective field. Optional: Consider bullet points.

  • Consider taking a scrum certification course for Product Owners. It will show you have a strong grasp of agile concepts regardless of your industry. Your existing certs for Google and Facebook Ads are great. Make sure to use the exact names of each product if you aren't already. (eg Google Adwords)

  • If you haven't already, read "Cracking the PM Interview" by Gayle McDowell and Jackie Bavaro. It will help structure how you think about your accomplishments as a PM and also prep you for interviews. Here's a non-referral link to it on Amazon.

  • Remove the blue hyperlinks from URLs and your email.

  • As a final note, you've only been a PM for about a year and a half. This might make things more challenging since you're still fairly early in your career. It's not a deal-breaker, you just need to show you've learned quickly and rapidly grown into the role. Focus on applying to roles that don't require too many years of experience. Most entry PM positions say 2-3 years, but companies are often flexible. APM roles tend to focus on recent graduates as a sort of apprenticeship. With your skillset, it seems like you should be able to get into a standard PM role somewhere.

    Keep at it and don't get discouraged! Your next opportunity is out there.
u/Nadrieras · 1 pointr/IAmA

You should really really pick up a copy of Cracking the Coding Interview.

u/jen0r8 · 1 pointr/cscareerquestions

ask a peer, see if one of them knows a team who's hiring or the hiring manager. managers get desperate, and a report's vouch can be worth a lot.

Otherwise : try contracting for Volt ?

Additionally, here's my generic advice to getting a position:

I would recommend doing the technical interview udacity course, ( https://www.udacity.com/course/technical-interview--ud513 ) . During that time, solve 1 problem (moderate difficulty) on hackerrank a day ( https://www.hackerrank.com/ ). Should take you about a month, but at the end of it you'll be able to pass most phone screens. Buy Cracking the coding interview if you can ( https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=pd_sbs_14_t_0?ie=UTF8&psc=1&refRID=AS16VZESZAFXJM40GJWE ) and do all of the string problems and some graph ones before you are onsited. See if people will mock onsite you before your on site.

u/Wojtek242 · 1 pointr/cscareerquestions

I am finishing a PhD in theoretical physics so I am very comfortable with mathematics. I'm also doing an online course (12 weeks total) on Algorithms from Stanford (and I've also done one in my first year of undergrad many years ago).

Given that will this book be a good investement for interview prep?

u/wrtbwtrfasdf · 1 pointr/datascience

I'd focus on:

  • Networking(personnel connections)
  • Coding interview practice: Cracking the Coding interview
  • Create a portfolio from personal projects with various datasets: Kaggle is great for this. Github too.

    Big Data stuff with pyspark or dask would probably be a boon too. MongoDB is also pretty easy to pick-up.
u/SavageTanMan · 1 pointr/cscareerquestions

Cracking the Coding Interview
Has a list of most common structures asked about in interviews. The author is an interviewer herself and has been in the industry for quite some time.

u/MrDjibrilo · 1 pointr/serbia_casual

Pogledaj ovu knjigu. Sve zavisi od kompanije do kompanije.

u/rykuno · 1 pointr/learnprogramming

A big thing is learning just how they function. Such how a Stack differs from a Queue and so on. Once you understand that you can implement it in any language really. If you are having trouble finding them in C#, you might wanna try looking at python since its pretty close to reading straight english(and there are a fair more courses that use python). Udacity has a really good courses that are free that I believe explain it really well.

My favorite being
https://www.udacity.com/course/technical-interview--ud513

Or even if you arnt looking for a job and just doing this for a hobby, the book Cracking the Coding Interview. It has examples of problems and data structure examples in C#.
https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=sr_1_1?ie=UTF8&qid=1473262882&sr=8-1&keywords=cracking+the+coding+interview

After this course, you can take one that goes into the theoretical aspect handling Big'o, time complexity, efficiency, and such =).

u/BigRonnieRon · 1 pointr/recruitinghell

I remembered the books:

Cracking the Coding Interview, Gayle Laakmann McDowell
https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850

Coding Interview Questions, Narasimha Karumanchi
https://www.amazon.com/Coding-Interview-Questions-Narasimha-Karumanchi/dp/1475293534/

Programming Interviews Exposed: Coding Your Way Through the Interview

Also: https://leetcode.com

u/Fabul0usLumin0us · 1 pointr/france

Pour les entretiens techniques "difficiles" (du genre startup hype ou GAFAM), le livre Cracking the Code Interview peu aider énormément.

u/Sitras · 1 pointr/compsci

I'd highly recommend looking through https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=dp_ob_title_bk when doing interview prep. It specifically has a section on Java and has questions related to many "gotcha's" and trivia questions related to java. In additional to technical skills it also has amazing prep material for soft skills and how to talk about the projects that you have worked on.

u/happygit · 1 pointr/devops
u/MistahJuicyBoy · 1 pointr/cscareerquestions

Hi! I love your username btw.

I'm going to try and find stuff over time, so I may add to this comment. It's going to take a bit to trudge through, but if you get just a little practice with each concept, you'll be pretty set. These companies don't need you to answer everything perfectly, that would give you a 99th percentile or whatever on Leetcode. If you know the basic concept, and you can mold it to the problem and give a time complexity, you'll be fine.

  1. Cracking the Coding Interview is a good book that details interview process and gives a basic view of data structures.
  2. There are some good courses in this link. I can't tell you which ones are the best, but I would probably recommend one by a university. Most are free without a certificate, but if you wanted to go for a certificate for any reason, it would look much better to have it from an reputable university.
  3. I have the algorithms book from this set on my phone. I have used it for review quite a bit. There is a lot in there, but what I would recommend is to use it to supplement your algorithm exercises online.
  4. I'm sure everyone else has recommended Leetcode, because it translates very well to the big N interviews. I would like to personally recommend Exercism. There aren't a ton of unique problems (a lot of the language tracks have repeat problems), but it has the advantage of giving you free code reviews, a summary of unit testing frameworks in the various languages, and I prefer the way it works. You can maintain a GitHub repo with all of your problems, and submit them through the command line. I'll have to warn that it is slower, because you have to wait for code reviews to continue on the core exercises. I would sprinkle this in with your other practice.
u/casintae · 1 pointr/Python
u/prakashdanish · 1 pointr/india

have you tried this? I have seen it mentioned almost everywhere.

u/ftk23 · 1 pointr/selfimprovement

OP! Super late reply but i hope you have the time to read. /u/ProphetThief and the children comments for that have awesome advice so I'm not gonna reiterate everything. But I just wanna give you a bit of my own experience, etc. and hope it helps!

Good job on signing up for the gym membership, I think thats the best thing for anyone who is trying to change their mindset. It's not about getting the best body or "GETTING SWOLEE". From my experience going 3-4 times a week lifting heavy weights, really changes your brain (yeah it sounds weird) and you'll feel more positive. Personally, prior to going to the gym, there would be times throughout the day when something "bad" happens, and I'll get all depressed and shit. But after going to the gym consistently, now when something "bad" happens, it's really easy to "force" my mind in a positive direction. IMO it's the best way to break out of a bad mindset.

Secondly, I read below that you like programming. Someone below gave you the link to www.freecodecamp.com which should be pretty good. I believe they teach HTML/CSS/Javascript, which is good for front-end and back-end, which means if you like web development, that's literally the most minimal amount of languages you'd need to learn. Maybe a goal you can have for the time being is to learn these skills while thinking of a cool web application that you can make. That way by the time you feel comfortable developing in those languages, you can build a project. Then you can learn new tools and build more projects with those new that. And you just keep doing this. After while you'll have a bunch of awesome projects you can put on a resume and you'll have the skills to back it up. I'll link you to some of the stuff that I found useful:

-https://www.youtube.com/watch?v=pB0WvcxTbCA (So you know what technologies you should learn. Yeah i know it says 2015, but it still applies)

-http://www.amazon.com/Cracking-Coding-Interview-6th-Edition/dp/0984782850 (So you know what it takes to get a dev job)

I hope you get the chance to read this and I hope it helps! GL MAN!

u/vidarc · 1 pointr/webdev

Cracking the Code Interview is an excellent book if you haven't already checked it out. It's more then just coding problems too. She tries to cover everything that you might need.

u/FuzzyPheonix · 1 pointr/jobs

I think the best way if you really want to get into the tech filed is by reading this book https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850. I would also learn algorithms to allow to at least get a better shot into a entry level coding job. Also check out local tech meetups and see what they are doing sometimes there are job openings and you can directly talk to employers there. Good Luck!

u/msphoneinterview · 1 pointr/UofT

thanks for the tip! I didn't yet go through CTCI and won't have the time to cover the entire thing. If it isn't too much to ask, would you mind telling me which of the chapters are the most important? I know Recursion/Dynamic Programming (Chapter 8) is really important, but what else? (If you don't have the book the contents page is here if you press the "Look Inside" button on the picture. Thanks very much again!

u/hunter2124025 · 1 pointr/cscareerquestions

I recommend going through the book https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=dp_ob_title_bk. It's got the technical stuff and also has sections on what to expect from a soft skills perspective.

u/_a9o_ · 1 pointr/cscareerquestions

I'd recommend reading through the FAQ for internships.

Technical interviews are only barely related to what your daily work would be like. This is both a blessing and a curse. It's a blessing in that you can study for and basically game the interview system. It's a curse in that you're "wasting your time" in that the skills you get from interviewing will only loosely transfer to your work as a software engineer. Being from a great school, you'll likely hear back about internships more than many students. Grab yourself a copy of CtCI and you'll be on your way to getting an internship.

u/tinbuddychrist · 1 pointr/softwaredevelopment

It's not clear to me if your issue is needing more education or getting a foot in the door.

I second the suggestion for Coursera - lots of great content on there.

What languages have you learned so far? I have found this to be a good intro to Python.

Many of the bigger software companies are less fixated on your resume and will instead give you a series of programming tests. Get a copy of Cracking the Coding Interview and work through all of the questions in every chapter, including the "Advanced Topics".

Where (approximately) do you live? Are you willing to relocate? (PM me if you don't want to tell the world.)

u/dsatrbs · 1 pointr/rutgers

Success isn't determined by the campus you go to... Do personal coding projects outside of classwork and maintain them on github, learn CTCI from front to back, work your ass off to land some internships, go to career fairs at both Newark and NB campuses and be personable, don't rely on career services alone, apply to jobs outside of CareerKnight/RaiderNet. Also don't forget to keep your GPA up (At least a 3.3!! No excuses!)... dedicate real time and attention to your classwork.

FYI: Some of the undergrad Comp Sci curriculum is taught at NJIT. You'll register through the Rutgers-Newark registrar, but have to walk across the street to NJIT to get to class (or take subway one stop for some reason, but I'd just walk it...).

Also here's some resources about the Newark campus which might help.

u/WilliamKiely · 1 pointr/todayilearned

Think you mean Doing Good Better by the author of the OP article. Great book.

u/wtfmf · 1 pointr/AskMen

There's a really good book called Doing Good Better that talks about where to put your money to have the most impact. iirc, he's behind GiveWell, which ranks charities.

u/theacctpplcanfind · 1 pointr/fatFIRE

Ah yeah, here it is

u/last_useful_man · 1 pointr/learnprogramming

There're these books, with the sort of meta, job/project wisdom I think, being glancingly familiar with them (though I haven't read either, they just look like what you're looking for). For what it's worth they're both well-known developers.

97 Things Every Programmer Should Know: Collective Wisdom from the Experts

And -

Chad Fowler's "The Passionate Programmer: Creating a Remarkable Career in Software Development"

u/unknownguyhere · 1 pointr/programming

Heh :-)

In fact, I still put off things. Though they explain why that is, and that's very important I think, so you don't get frustrated because you're suddenly supposed to be a high-achiever (at least by your own unrealistic expectations).

Habits get ingrained more and more over time. They use the analogy of a slope in the winter. When you slide down you carve out a little path, then another. Over time though, you carve out one path the most and you're less likely to take another route. You don't get rid of procrastination by reading a silly book. You gain awareness though and are given the tools/techniques to battle it, which takes time and effort. But I already notice that the discomfort I feel when putting something off has lessened quite a bit. That alone makes it more likely for me to follow through.

While we're in that new-agey mood I'd also like to recommend mindfulness meditation to my fellow hackers. I first heard about it in Pragmatic Thinking and Learning where it was suggested as a way to increase concentration. When I glimpsed a little bit through the procrastination book, I noticed that they recommend mindfulness as well in a later chapter. Mindfulness meditation, to me, really seems to be a magic bullet. One that works. :-)

If you read this and think it's bullshit, feel free to voice your opinion. Maybe we can sort out some misunderstandings.

When meditation is discussed I have the feeling that to some people it seems to be a wishy-washy esoteric practice. It is not. I have avoided it for a while for that concern, but it turned out to be very helpful in quieting the mind and gaining focus. The problem here also is: meditation is an active process (you don't just sit around doing nothing) AND it needs practice. Now we're back to that procrastination thing. ;-) It sucks when you put something off that you know is helpful to you and only takes 15-30 minutes (or how long you decide to practice).

u/PavlovianRude · 1 pointr/psychology

It sounds like you're in great shape so far. In terms of breaking into the research arena, taking a behavioral research class is an excellent start. Like I said in my previous post, do well in the class, express your interest to the instructor, and get to know him/her. This will open up doors for you. They are not teaching that class for no reason. They will have, at the very least, some connection to the research world. Once you show the instructor you can do well and are interested, approach them about any research opportunities he/she knows and you will hopefully get some leads.

Unfortunately, instructors at community college usually don't do their own research (I don't know where you live, but that's generally how it is where I am in the US). So you may not get a lot of opportunities out of that course (though you'll probably learn some great stuff).

However, once you transfer to a university, those opportunities will be far more plentiful as professors at big schools focus on research. Their jobs depend on it. So again, once you transfer, get to know all of your professors, express your interest, and approach them about participating as a research assistant. This will open doors for you.

Another good practice, once you're at university, is to look up the faculty members in the psychology department. Even if you haven't taken a class with them, you can email them and ask if they need help in their lab.

As for hospitals, there are definitely research opportunities there. However, at least where I'm from, most of those positions in hospitals are paid and require some previous experience. So those may be out of reach for you right now. Most everyone I know cut their research teeth at a university volunteering for professors.

Another thing that's very helpful is to figure out what you're actually interested in doing both clinically and research wise. That is, having a specific focus will help you immensely. The earlier you know this, the more of an advantage you have.

In my case, I knew I wanted to do drug and alcohol research. So I targeted professors at my university who did research along those lines. By gaining pre graduate research experience in that sub discipline of psychology, my application for grad school was stronger because it showed the schools I was applying to that I had a long standing interest in the topic and had actual lab experience to back up my interest (it's easy to say that you are super interested in a topic, but to be able to actually say "Hey, I've done work in this area!" is invaluable. I would argue that this will get you into a program more than your grades or GRE scores (though those are certainly important).

I would also recommend that you get this book. It really breaks down what you need to do to get admitted to solid programs.

u/JustTryingToHelpUs · 1 pointr/AcademicPsychology

Edit: Formatting issues.

I have just recently jumped through these hoops myself so I'll share what little bit I've gleaned:

However, first a preface: As with many things in life, there is no 'cut & dry'/'black & white' way of looking at things - especially grad school. You may have an amazing GPA but horrendous GRE scores, or amazing work experience but a poor GPA, etc etc. Also, there are many different ways to go about finding an answer to your questions. I'll attempt to address these as thoroughly as I can (aka, this is going to be stupidly long).

Grades:
First off, unless you are trying to get into an Ivy League school, the 'usual' cut off for GPA is a 3.0. So, based exclusively off of that, you're looking good. Now, let's say your GPA goes downhill a bit more. Sweat & fear not my friend! While most schools tend to say that their "cut off" is a 3.0, they will still look at your application if you are kicking ass and taking names in other areas (GRE scores, work experience, volunteer experience, lab/research time, background, etc.) Speaking of GREs, have you taken them? If not, you are a bit behind schedule and should definitely start studying for them and signing up to take a few.

Masters then PhD or all out PhD:
I looked (extensively) at these options and here's what I learned/think I learned. If you are at a deficit in some area that won't get you into a PhD program, then a Masters would make sense. However, this has ups and downs. Assuming you take the average time for each degree, a Masters is 2 years and a PhD is 5, totaling 7 years. If you got into a PhD program from the start then it's only 5 years. You save two years of your life, school work, money, time, etc. However, upon completion of a Masters, your Undergraduate work means jack, so your current worries won't be there when you get the Masters. However! (so many 'howevers'...), unless the school you go to for a Masters (School A) -and- a PhD, then the likelihood that a majority of your Masters classes from School A would transfer over to your PhD program (School B). So, you'll end up having to retake classes you've already taken and just putzing around. Although if School A also offers a PhD, then it doesn't matter. That being said, I did not find many programs that offer a Masters as well as PhD during my search for schools. One advantage to getting a Masters first is it gets you more time in the field/lab/writing/etc. which not only helps with solidifying that Psychology is what you want to do but also helps you look good on paper for PhD programs. One advantage to getting into a PhD program and bypassing the Masters is the time you save. Your thought of getting into a lower tier Masters program then going to a PhD program makes sense, it just takes more time and money out of your life.

Funding
On average, you are lucky if you can get a TA/RA position that gives you a stipend for Masters programs. It is fairly common for Masters students to get loans. Tuition waivers are virtually non existent; however, this does not mean you cannot apply for fellowships, grants, scholarships, etc. With regards to a PhD program (one that has <10 students), it is fairly typical to either receive a full tuition waiver and/or some kind of stipend (typically in the form of a TA and/or RA).

You mentioned an interest in the Clinical side of things. Speaking fairly broadly, a PhD in Clinical Psychology is fairly research heavy as well as fairly Practice oriented (think a 50/50 blend). A PsyD is much, much more Practice oriented (about 90% practice). There are many more doors open to you with a PhD than a PsyD. If your only dream job is to work with clients in a practice then a PsyD is worth looking at. In a PsyD program, you usually (I'd guess in about 98% of schools) have to foot the bill by yourself (all of it, sadly) and then your dissertation is typically a case study. In a PhD program, you are going to get a pretty heavy research caseload that have you churning our papers and research. You may or may not get many clinical hours, clinical supervision, practice time with clients, etc. in a PhD program. I can't say it enough, while the PhD has quite a hefty component of research to it, you can do many more things with a PhD than a PsyD (not to bash on the PsyD...).

Edit 2: While PhD programs typically offer a tuition waiver and/or a stipend for TA/RA work, it is typical that you still take out loans, albeit a smaller amount than for a Masters. However, a PhD program is twice as long as a Masters so depending on the amount you take out, it may be more expensive (loan wise) to go the route of a PhD.

Lastly, I would discourage you from even looking at schools that are not APA accredited. If you are unsure, you can either read the program description on the school's website (they will prominently announce their APA accreditation) or you can go to the APA website and search for accredited schools here.

I lied. One more piece of information. Go to a nearby Borders, Barnes & Noble, your college bookstore, etc. and read/look at the latest copy of this book. It's pretty thorough and lists out so much information for you.

Best of luck to ya.

u/Chicken_Finger5 · 1 pointr/clinicalpsych

This book is what I used to find programs, it has some Canadian programs, from what I understand, and is pretty well-organized. It also has overall tips on the application process, and was really helpful for me. As a disclaimer I'm not related to the author/publishing company, I just found it to be pretty solid. Good luck!

u/ImperfectTactic · 1 pointr/learnprogramming

That depends on how you personally learn. Maybe have a read of https://www.amazon.co.uk/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050/

u/Toastbuns · 1 pointr/personalfinance

I'm in a similar position. I don't have a huge emergency fund because I know in a real dire emergency I could always call up my parents. I'd rather pay my loans quicker than work for years to build an emergency fund and I have the luxury of that. If you have any kind of safety net like that you might want to do the same.

So here is how I do it:

  • Emergency fund (up to a couple months of living expenses)
  • 401k up to company match (mine doesn't match right now so i skip this)
  • Student loans (what you can pay over min payment, target high interest loans)
  • Roth IRA (can only put away 5,500 in this a year)
  • Short term savings (or apply any extra not used for living expenses to loans or more to 401k if you like)

    I think you should throw as much money as you can at the loans without skipping on your 401k and possibly a roth IRA. Those loans are guaranteed to lose you money at their interest rates.

    You should also make sure the funds you choose on your 401k are low expense ratios with no loading fees. There is some good info on this in the sidebar.

    This book looks a bit cheesy but honestly it spells everything out in simple terms and it's meant for recent grads. I grabbed it off my roommates bookshelf one day and ended up reading it cover to cover. It really re-states much of what anyone on this subreddit would tell you.

    Best of luck, sounds like you have a good start on things!
u/coned88 · 1 pointr/DoesAnybodyElse

A nation is valued by what it creates. Having a 300 million people who can have a mathematical ceiling of balancing a checkbook is not very competitive.


> I am actually working with a publisher to develop a Streets Smarts textbook for high-school and colleges around the US, and will definitely be incorporating some Reddit's thoughts and suggestions into the book.

It's already been created, http://www.amazon.com/Money-Book-Young-Fabulous-Broke/dp/1594482241/ref=sr_1_2?ie=UTF8&qid=1293751075&sr=8-2 It is cheap and quite concise.

u/Trugy · 1 pointr/personalfinance

The best ones are of course free, and both this subreddit and bogelheads have a wealth of knowledge. I try and watch a tutorial or read a story a few times a week on both


For how to create and stick to a budget as a young professional, I like Dave Ramsey. He has tons of good rules of thumb and pitfalls to avoid that will be useful for the rest of your life. He's a bit conservative though, and I don't necessarily agree with his cash only, no debt strategies.


https://www.amazon.com/Total-Money-Makeover-Classic-Financial/dp/1595555277/ref=sr_1_1?ie=UTF8&qid=1480449960&sr=8-1&keywords=dave+ramsey


Suze Orman is another great author for younger people, especially when tackling big things for the 1st time like home ownership and loans


https://www.amazon.com/Money-Book-Young-Fabulous-Broke/dp/1594482241/ref=sr_1_1?ie=UTF8&qid=1480450023&sr=8-1&keywords=suze+orman


My top suggestion though is Rich Dad, Poor Dad. It's not as direct as many other personal finance books, as its more general advice on how to steer your financial life, but itss an incredible book


https://www.amazon.com/Rich-Dad-Poor-Teach-Middle/dp/1612680011/ref=sr_1_1?ie=UTF8&qid=1480450131&sr=8-1&keywords=rich+dad+poor+dad

u/rez9 · 1 pointr/GetStudying

Pragmatic Thinking & Learning is a pretty good overview of different topics about learning and study skills.

Learn more, study less also a good book to use as an overview of topics.

LEARN MIND MAPPING

u/rebalance_investor · 1 pointr/investing_discussion

Suze Orman has a whole line of books, and a TV show. I think one of them is "The Money Book for the Young, Fabulous & Broke". You can probably spot it at the local library, or buy a used copy from Amazon for about $4 after shipping & handling.
https://www.amazon.com/Money-Book-Young-Fabulous-Broke/dp/1594482241/

But you could just as easily browse the category on Amazon ("financial planning") and use reviews to guide you to a good library book or purchase a used book.
https://www.amazon.com/gp/bestsellers/books/2717/ref=pd_zg_hrsr_b_2_3

u/liaguris · 1 pointr/learnprogramming

Yeah I have read around 70%-80% of all YDKJS books combined .

By the way just in any case you find anything interesting and helpful (but for also copy pasting this list in the future) here are the books-site tutorials-docs that I am reading-have read-plan to read-follow :

web dev road map

htmldog

www.javascript.info

css in depth (manning)

eloquent js

YDKJS (all books)

HTML5 for masterminds

dom enlightenment

high performance images

web performance in action

reliable javascript

building progressive web apps

http: the definitive guide

learning http 2

cracking the coding interview

javascript data structure and algorithms (be careful,not a good choice, it has a lot of mistakes but I find it concise)

professional git

vs code docs

Using SVG with CSS3 and HTML5

Interactive Data Visualization for the Web

refactoring ui

figma docs

react docs

redux docs

vue docs

webpack docs

clean code

design patterns

web components in action

Inkscape: Guide to a Vector Drawing Program

and many more to come .

u/folkhack · 1 pointr/politics

Ship software that solves problems for people, and once you do that make a GitHub account. Then get to a bigger city where there's an actual market for work... and interview your ASS off until someone gives you a "step-up". Once you've got a couple of years under your belt building software professionally you're "in".

I know it's easy for me to say all that, especially because I'm a hella generalist... but there's real demand for people who have even a basic skillset.

I would say if you want to immediately get in zoology then you'll have to go back for the degree because if you're looking at niche research fields it's either have experience and/or a degree. I would push you to get general API experience, be able to publish web software, get some front-end/back-end capabilities and go from there. That will feed you no matter what, and give you an incredible amount of job mobility.

If you already have basic Python under your belt, that's an amazing start. Learn Flask, and Django and ship a couple of personal websites/web apps with it. If you can tie it into a user experience either web-based or mobile-based you will get hired as a junior almost immediately (being able to show work is incredibly useful vs. "I can do x"). Prepping for the interview process is as simple as working through a solid chunk of "Cracking the Coding Interview" and you'll be ahead of a TON of people.

This all sounds like a lot, and it is. But if you spend a couple of hours every night busting your butt you can get there!

u/dotnetchris · 1 pointr/wgu_devs

If you want to work for Google, Microsoft, Apple, etc, this is a must read -
Cracking the Coding Interview

u/qspec02 · 1 pointr/learnprogramming

Cracking the Coding Interview

Really worth picking up.

u/rohlman82 · 1 pointr/swift

Here is a great book to start with:
https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=pd_lpo_sbs_14_t_0?_encoding=UTF8&psc=1&refRID=VYKNSB6ZE37T8GSP8GKY

Stay active in the Swift community. Finish the test app, add features, experiment with UI, etc.

u/garry__cairns · 1 pointr/Python

Self-taught programmer here. In my experience my having built real things more than made up for my lack of a related degree (my degree's in journalism). I've never failed to land an interview because I didn't have a related degree and nor has it ever stopped me getting a job.

Some advice:

  • If my experience of self teaching generalises then you might be learning in the opposite direction from those on degree courses. What I mean is that I was writing working software before I really understood what features different data structures and algorithms had. Take care to learn these basic details once you've learnt the broad-brush of how to get stuff working.
  • Buy a copy of Cracking the Code Interview.
  • You're on the right track with building a portfolio. Being able to write about real things you've built, ones that have users who aren't you, in your CV and talk about them at interview is crucial.
  • Work on your communication/soft skills as much as on your technical ones. Writing good documentation, being able to work as part of a team and prioritisation skills are huge parts of the job.

    Good luck!
u/solid7 · 1 pointr/cscareerquestions

When you are considering applying, pick up a copy of cracking the coding interview, in there you will find a plethora of realistic-ish interview problems.

Check out sites like projecteuler, codeeval, topcoder, etc... they all have problems to solve. Note that being a competitive coder doesn't mean you'll be a great engineer, but it's a good start.

If you are in college, join the ACM chapter (if your college has one). Participate in the ACM programming competitions, that will likely be a humbling experience for your first few rounds. The yearly worlds programming competition questions used to be posted after the fact; if that's still the case, dig those up and get to work.

Up front, expect this to be a long and difficult process of learning. Learning to be a good problem solver is in no way related to learning python.

That's what I think, I might be talking out my ass..

u/forthewin0 · 1 pointr/gatech

For CS majors who might have a interview lined up already, try to make the time to read Cracking the Coding Interview. It's basically a TL;DR of CS 1332 with a lot of practice problems. Additionally, I found the behavioral and technical interview strategies very helpful.

Don't worry about how big the book is. Half of it is just problems and solutions. As a freshman, you probably only need to read the first 150 pages or so. Make sure to practice though!

u/ubersapiens · 1 pointr/cscareerquestions

I was surprised to see that Gayle Laakmann Mcdowell (author of [Cracking the Coding Interview] (http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/ref=asap_bc?ie=UTF8), which I see recommended pretty frequently around here) uses [Square Space for her site] (http://www.gayle.com/). So no, it would seem not to matter so very much, to most people.

However, I still chose to take down my Jekyll site to code one by hand because (1) I wanted to customize things that were difficult/buried in Jekyll and (2) my general front-end newbiness made me feel like it was still the better option.

If you are an old pro like McDowell or a pure back-end dev with few aspirations to be otherwise, it probably doesn't matter. However, if you want to employ or contract someone at the junior level to do front-end work, you'd probably prefer someone who didn't use a template for their own site, would you not?

u/nicksuperb · 1 pointr/ITCareerQuestions

"Hope for the best and prepare for the worst"

As someone who's recently been interviewing for senior level positions, this is probably the best way to sum up my experiences. It's not possible to predict with any certainty how hard the questions will be. Try finding a few topics you're unfamiliar with and diving into a book like this one: http://smile.amazon.com/dp/0984782850

In a perfect world the most optimal way to ace these types of interviews is to ALWAYS be ready... even when you have a job you like, 300 hours from now you could be looking for a new one...

EDIT: Online challenges/prep is an awesome way to go also

u/midfield99 · 1 pointr/ITCareerQuestions
u/zdwolfe · 1 pointr/SoftwareEngineering

Buy or rent a copy of Cracking the Coding Interview. It has a ton of practice interview questions, which is cool, but there's also a ton of "soft skills" advice, interview prep timelines, resume building tips, etc.

https://www.amazon.com/dp/0984782850

u/Ashilikia · 1 pointr/GradSchool

For software engineering interviews, the magic is called Cracking the Coding Interview :P. It's really awesome that I can just study hard and then know I'm going to do well.

For the person emailing me, speaking at an industry-heavy conference was key! All it took was a "why not" and submitting a talk proposal.

u/ShenmeNamaeSollich · 1 pointr/cscareerquestions

Why stay at a school where you're not studying what you want, and which doesn't even offer what you want nor one of the most popular in-demand majors??

Anyway, there are any number of online courses/tutorials about Data Structures, and how to build/use them in various languages. You can use C++ for them, or try to learn something else too. For speed & simplicity in interviews, a lot of people seem to prefer Python for discussing DS&A, but by their nature the concepts are fairly language-agnostic.

Try visualalgo for one ... there are plenty of others.

Since a lot of algorithms require/suggest the use of specific data structures to make them work, it's probably better to learn what those are first, and then try to tackle the algorithms that rely on them.

Grokking Algorithms - illustrated & pretty basic intro to concepts

Common Sense Guide to Data Structures and Algorithms - slightly less so, but still pretty basic intro to concepts

CTCI - problems covering arrays, linked lists, stacks & queues, trees, graphs ... Actually kind of useless if you don't already know what those are though.

Introduction to Algorithms (CLRS) - 1 of 2 standard U.S. college-level algorithms textbooks

Algorithms, 4th Ed. - the other standard U.S. college-level textbook, w/free online "book site", code, and a free Coursera course to go along with it.

u/jeffs5 · 1 pointr/cscareerquestions

Get Cracking the Coding Interview and work through it. You can buy previous editions, or find it in other ways, if that one is too much.

I don't know if competitive programming would help too much. There are websites like HackerRank that can help you practice those short, quick questions.

Getting better is going to take time. There isn't a 'quick shot to success.'

u/tact1cal · 1 pointr/cscareerquestions

Probably you wouldn't get much for 3 days, but for the future:

u/mad0314 · 1 pointr/learnprogramming

This book is often recommended for this subject.

u/river-wind · 1 pointr/softwaredevelopment

All of the recommendations already given are good. In addition, Pick up a copy of Cracking the Coding Interview, and do as many examples as possible.

https://smile.amazon.com/gp/aw/d/0984782850/ref=dp_ob_neva_mobile

u/billobob · 1 pointr/Wet_Shavers

I'm reading Cracking the Coding Interview. Needless to say, it's about as fun as fucking a wet sock.

u/Zergineering · 1 pointr/ApplyingToCollege

All the interviews for software developer/engineer start with evaluation of your knowledge/ability in CS. It's pretty much a test. Recruiters/interviewees will give you a prompt to write a code, or give you an example of codes and ask you to either debug/enhance it.

Not something you need to worry about now as a college freshmen. But it is something to look into before graduation. Here is a popular guideline book that many people found helpful.

Cracking the Coding Interview

u/pdoogs83 · 1 pointr/gamedev

Programming Interviews Exposed helped me land my internship.

u/drebin8 · 1 pointr/IAmA

The best way to get a job is to get an internship and impress the hell out of them. I had an internship over this last summer, and while my team couldn't hire me (budget, no open req), another team opened up a req and contacted me and hired me on the spot (no interview). The guy I'll be working for was my scrum leader, so I already knew him. Connections are extremely important. Network as much as you can. Talk with other CS students and find out their connections - I have tons of connections for which I recommend other friends. You are far more likely to get a job with a recommendation than you are by just applying on the website.

Be sure to check Glassdoor so you know what kind of salary to expect. You can use Glassdoor as a basis for negotiation.

Make as many connections as you can, get an internship, etc. Make some games on your own (Unity Engine is free). Make something you can show to companies to show that you know how game development works. Read books about game development, as well as how to do well on CS interviews (check out "Programming Interviews Exposed").

Edit - deleted stuff that wasn't really necessary.

u/tdudley22 · 1 pointr/devops

Check this book out.:
Programming Interviews Exposed

It has the concepts you mentioned you were struggling with, with some code examples. It’s good reference material.

u/SenpaiCarryMe · 1 pointr/cscareerquestions

I wish I could have done double degree/major at my university. I could have taken CS courses but curriculum structure between CE/CS was too big of a difference... Needing a ton of pre-requisitions that I did not have in CS. And department wasn't willing to give me an override (yay overpopulation).

And my CE is mostly hardware focused albeit it is being advertised as CS+EE. And hardware as in... mostly non-computer related. Quantum physics in circuits, microelectronics, etc etc. I'd consider those as more of EE with electrophysics concentration. And you'd be surprised how many low-level embedded programming classes we have.... three. Two of those three aren't scheduled to be offered in the next five years, including previous 3 years, due to budget cuts. So basically one. Every semester we were promised more CE courses would be offered.... except more CE courses were cancelled instead.

Any particular book you would recommend? I'm currently reading through this book and it is helping me a lot.

And congrats on your offers!

u/Billz2me · 1 pointr/learnprogramming

Cracking the coding interview has a lot of questions and answers, not much else. That being said, it's very good and highly recommended.
I also recommended Programming Interviews Exposed

http://www.amazon.com/Programming-Interviews-Exposed-Secrets-Landing/dp/1118261364/ref=sr_1_1?s=books&ie=UTF8&qid=1376967251&sr=1-1&keywords=programming+interviews+exposed

u/everylittlethingido · 1 pointr/ITCareerQuestions

Take a look at this and this book

u/hackcasual · 1 pointr/webdev

For finding jobs,

Job Listing Websites:

  • monster.com
  • careers.stackoverflow.com
  • linkedin

    In larger cities with a lot of tech companies, you can find job fairs where companies recruit.

    Lastly, find a few local companies and go directly to their job listings.

    Not having a CS degree will be a negative but more and more companies are broadening their backgrounds for Junior level positions.

    When interviewing with a company, look them up on glassdoor to see what developer interviews are like there. You can also ask the recruiter at the company what to expect. Technical interviewing is all over the charts in terms of how its conducted, expect a mix of:

  • Technical questions what's the difference between a raven and a writing desk?
  • Programming psuedo code questions compute the inner radius of the gordian knot
  • Background questions describe a time where you shouted something really profane at your computer
  • Behavioral/Values question The tortoise lays on its back, its belly baking in the hot sun, beating its legs trying to turn itself over. But it can't. Not with out your help. But you're not helping.
  • Team fit Star Trek, TNG or DS9?
  • On site live coding, like pseudo code but you're expected to get it to compile
  • Homework, take home coding challenge

    In general I would recommend passing on any company that wants more than about a day onsite interview + 8 hours. If they're not respecting your time for an interview, they won't respect your time while working for them.

    I'd recommend less focusing on JS/Angular and more focus on drilling for interviews. This book is great: https://www.amazon.com/Programming-Interviews-Exposed-Secrets-Landing/dp/1118261364
u/perceptionsmk · 1 pointr/ITCareerQuestions

Never lie. That said I have been "unqualified/underqualified" for every position I have held if you look at measures like years of experience. This isn't a deal breaker. Put yourself in the hiring managers shoes. If you want to have a team that is working on bleeding edge technology and projects you have to make some compromises on experience. Particularly if you don't have a enormous budget to throw around. The critical things I look for are below.

Smart - I deal with complex problems everyday. A requirement for working with my team is that you can keep up.
Passion - Am I hiring someone who is passionate about the work and role. Do you work with this stuff in the spare time or just for a paycheck.
Ambition - If their is a gap in skills is the applicant going to work hard to fill the gap as quickly as possible. Would you read books and do research to learn the concepts.
Attitude - Are they a good fit for the team. Can I explain what needs to be done and count on you to solve problems and proactively tell if you are struggling.

Look for smaller companies where you will have the opportunity to wear as many hats as possible. The pay will be lower but your playing a long game with your career :) get the experience and find out which hat you like best.

Here is are two great books on the topic.

https://www.amazon.com/Smart-Gets-Things-Done-Technical/dp/1590598385

https://www.amazon.com/gp/aw/d/1119087252/ref=mp_s_a_1_6?ie=UTF8&qid=1484396909&sr=8-6&pi=SL75_QL70&keywords=stretch+book

Good luck!

Oh and when you land that next position. This book will help get you off on the right foot.

https://www.amazon.com/gp/aw/d/1422188612/ref=mp_s_a_1_1?ie=UTF8&qid=1484397012&sr=8-1&pi=SL75_QL70&keywords=first+ninety+days

u/WyvernsRest · 1 pointr/humanresources

My go to recommendation to any leader in a new role.

As a HR business partner you will have a significant input into University strategy after all what is a university without its lecturers, your strategy will help define the future culture of the university. What an opportunity!

First 90 Days, Updated and Expanded: Critical Success Strategies for New Leaders...

https://www.amazon.co.uk/dp/1422188612/ref=cm_sw_r_sms_c_api_i_V3PADbKFMBHQT

u/danfromtheUK · 1 pointr/ProductManagement

Read this: First 90 Days, Updated and Expanded: Critical Success Strategies for New Leaders at All Levels https://www.amazon.co.uk/dp/1422188612/ref=cm_sw_r_cp_apa_i_XqeFDbVRQHA8B

Then read this: The Lean Startup: How Constant Innovation Creates Radically Successful Businesses https://www.amazon.co.uk/dp/0670921602/ref=cm_sw_r_cp_apa_i_nreFDbZQPJHRM

Biggest failure is lack of humility. Remember you are a Servant Leader (https://en.m.wikipedia.org/wiki/Servant_leadership) and are responsible for everything while owning nothing.

u/RReaver · 1 pointr/sysadmin

I'm assuming this is for a company that you haven't worked for before? If so, then The First 90 Days is a good read.

https://www.amazon.ca/First-Days-Updated-Expanded-Strategies/dp/1422188612/ref=sr_1_1?ie=UTF8&qid=1541623708&sr=8-1&keywords=first+90+days+book

u/mkraft · 1 pointr/whattoreadwhen

When I started a new management role, I was gifted with The First 90 Days by Michael Watson. Very informative and helpful. One of the first things he asks his readers is to do a self-evaluation, and builds lessons from there. Good stuff.

u/swmacint · 1 pointr/gifs

If you're starting a new job, check this out: http://www.amazon.com/The-First-90-Days-Strategies/dp/1422188612
100% worth the read.

u/rhiaaryx · 1 pointr/AskComputerScience

Hehe, I wrote that while taking a break from reading something about forgery versus borrowing in art, so everything I came up with was related to that.

Another interesting problem is something that may not be well documented (and thus may be hard to write about), but a friend of mine's boss (that sounds far removed!) has noticed a serious lack of actual ability to code in people pretending to be software engineers. That's why you get interview problems like fizz buzz--interviewers actually do need to check that you actually can code before doing anything else because there're a lot of people who apply for those jobs thinking that they can just 'design code' instead of actually writing code. The coding interview is actually another really interesting problem for our field--not only 'how do you determine whether or not someone is qualified in an interview' but also 'how do you prove that you're qualified in an interview'. There are even books on the subject, such as Cracking the Code. (Speaking of which, if your CS major doesn't require you to take probability/proofs/logic/combinatorics/discrete math classes, take them anyway.)

And I babble. Good luck :D

u/readysetPAUSE · 1 pointr/cscareerquestions

Kinda late but

Software Engineer, been working 1year ~ 3 months now. I have no Github account and no personal projects on my resume, but I did list relevant class&internship projects, and my resume is also pretty beefed with work experience and extracurriculars, as well as honor societies, even though my GPA isnt super stellar.

  • easy peasy. Talked to someone at a job fair (funnily enough, not usually who you'd think of as a tech company), ended up getting a call, they lost my resume, and then found it again a couple weeks later. Finally the week before I was due to respond to a different offer, they asked me to go in for an interview, I did, and I got the job a few days later.
  • Resume wise, I was webmaster of my school's TBP chapter, and my internship involved extensive web work. The job was for a web company so i think they liked that. That and I was really chill during my interview, and bonded with one of my interviewers over the fact that we both dance. I've heard that they base their hiring a lot on who they think will fit into team dynamic, so it's important to relax and be yourself.
  • Yep. I work in socal, and I live in a less expensive area, but I bought a new ~30k car, travel regularly, and go out to eat often. In terms of work/life, sometimes I end up working too much just due to how deadlines work out, but you get that everywhere. 80% of the time I'm chillin.

    This book -> http://www.amazon.com/Cracking-Coding-Interview-Fourth-Edition/dp/145157827X did me wonders during the interview process.
u/SilverStarv5 · 1 pointr/The_Donald

How to fail at almost everything and still win big (league)

Where have I heard that before?

u/Murica4Eva · 1 pointr/The_Donald

If you're curious about what to read, read this:
http://www.amazon.com/How-Fail-Almost-Everything-Still/dp/1491518855

He's an odd dude, but he has amazing insights you will carry with you all the same, and they will help you be successful.

u/getbusymate · 1 pointr/GetMotivated

Read How to Fail at Almost Everything and Still Win Big and focus on the system to get you there, not the goal itself.

u/heade · 1 pointr/slavelabour

Need this. $3 PayPal

u/fynxgloire · 1 pointr/learnpython

On Amazon it got good reviews, although I cannot understand why?

The code is literally UNREADABLE, the above code is the first code in Chapter 6, Strings

​

Elements of Programming Interviews Python

https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949

u/Depictive · 1 pointr/learnprogramming

I actually picked up this book in preparation since I'm planning do some interview questions in python pretty soon and I'd say it's well worth it. All the solutions are implemented in python, and it tells you time + space complexity and more optimal possible solutions for the questions. There is an eBook version out there as well.

u/wongp · 1 pointr/brasil

4 passos:

​

0) Entre numa faculdade, qualquer uma. No exterior ninguém conhece nenhuma faculdade brasileira, então tanto faz. Entre num curso para conseguir tirar o visto.

1)Faça esse curso 2 vezes: https://www.edx.org/es/course/introduction-to-computer-science-and-programming-using-python

​

2) Leia e resolva este livro 4 vezes https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/ref=sr_1_1?ie=UTF8&qid=1541552183&sr=8- 1&keywords=elements+of+programming+interviews e resolva 200 problemas aqui www.leetcode.com

​

3) Aplique online ou através de recrutadores em maratonas de programação.

Fim

​

u/askhistoriansapp · 1 pointr/cscareerquestions

>Is it worth paying that 65 dollars for those few questions

Why wouldn't you want to do hard problems?

The benefit of algoexpert.io is that the guy walks you through first the concepts (using a digital sketch pad to draw) and then the code itself - the naive solution (if applicable) followed by optimal one. That's the value proposition: maximum hand-holding to learn. I think that's worth $1/question, but your mileage may vary.

As for other advice, if you read this book cover to cover and do every exercise in it you should basically cruise through every coding portion of any technical interview.

u/JackWagon · 1 pointr/AskReddit

I did this. Of the things you listed, West/Lexis subscriptions are not necessary at the beginning, and they're actually pretty expensive. Your local Bar association probably has a free legal database that you can access for free as a member of the Bar. They are not quite as comprehensive as West or Lexis, but they definitely get the job done. I think the most common one is called Casemaker. You can also use Google Scholar, too. Obviously Google Scholar can't Shepardize a case for you or anything like that, but in the actual practice of law you aren't going to be researching the hell out of every little point of law like you did in Legal Research and Writing, unless you're doing appellate work.

Biggest piece of advice I can give you at the beginning is to keep your overhead as low as possible. Many cities have "executive suite" type setups for rent. Essentially, you're renting a personal office and your rent is pooled with other attorneys to pay for common amenities like conference rooms, a main receptionist who routes all the phone calls, access to copy/fax machines, Internet service, telephone service, etc.

Other than that, obviously you need clients. Where will you get them? Start networking (I hate that term) with other established attorneys who probably have overflow work they can refer to you, or refer you clients who can't afford their rates, but can afford yours. Draft a retainer agreement to use. Know your jurisdiction's Rules of Professional Conduct on trust accounts, representation agreements, etc. Get an established attorney to be a mentor to you... no matter if you got an A in Property or Family Law or whatever else, once you get your first case, you will probably immediately say, "Oh shit, what the fuck do I do?!" You need someone who can show you the ropes of actually practicing law, which is nothing like reading 100 pages in your Con Law book and then answering theoretical questions on the Commerce Clause for an hour.

There are all kinds of other considerations, but you should buy this book, or check it out at a library: How to Start and Build a Law Practice, 5th ed. by Jay Foonberg. It's a classic, and it covers everything. Some of the information in it is a little outdated, but the overarching concepts are sound and it is packed full of great advice.

u/zhay · 0 pointsr/webdesign

A great GPA (3.8+) will take you far. Also, put some webdesign-related projects on your resume!

If you can, go to a career fair. Be friendly, be prepared, and follow up with thank you e-mails.

I'm not sure how interviews for UI people go. If companies give technical interviews, I recommend you buy and review one or both of the following:

I recommend: Programming Interviews Exposed: Secrets to Landing Your Next Job

And:
Cracking the Coding Interview, Fourth Edition: 150 Programming Interview Questions and Solutions

If not, I'm not sure. Sorry.

u/LieutenantKumar · 0 pointsr/practicemodding

...continued...

> Test plans - When you apply for QA roles, you'll almost certainly be asked "how would you test ____?". The correct answer is to be methodical. Don't just spew out a stream of test cases as you brainstorm them. Understand the different scopes (unit, functional, integration, maybe end-to-end) and what the goals of each is, and how they differ. Understand that there are different areas of testing like boundary, happy path, special cases (null, " ", 0, -1), exceptions, localization, security, deployment/rollback, code coverage, user-acceptance, a/b, black box vs white box, load/performance/stress/scalability, resiliency, etc. Test various attributes at the intersection of a compenent and a capability (borrowed from the book How Google Tests Software), and I believe you can see a video that goes into this called The 10 Minute Test Plan. Understand how tests fit into your branching strategy - when to run bvts vs integration vs regression tests.

> Test methodologies - Understand the tools that make you an efficient tester. These include data driven tests, oracles, all-pairs / equivalency class, mocking & injection, profiling, debugging, logging, model-based, emulators, harnesses (like JUnit), fuzzing, dependency injection, etc.

> Test frameworks - Knowing all the tests you need to write is good, but then you have to write them. Don't do all of them from scratch. Think of it as a system that needs to be architected so that test cases are simple to write, and new functionality is easy to implement tests for. I can't recommend any books for this because it's something I learned from my peers.

> Test tools - Selenium / WebDriver for web ui, Fiddler for web services (or sites), JUnit/TestNG, JMeter (I have to admit, I don't know this one), integration tools like Jenkins, Github/Stash, git/svn.

> System design - As you're entry-level, this may not be a huge focus in an interview, but know how to sensibly design a system. Know which classes should be used and how they interact with each other. Keep in mind that the system may evolve in the future.

> Whiteboarding - Practice solving problems on a whiteboard. The process is more than just writing the solution, though. This is the process I follow (based loosely on the book Programming Interviews Exposed):

  • Clarify the problem - resolve any ambiguities, determine behaviors for special cases (throw an exception vs return null?). Look for gotchas (like if you're doing some string manipulation with overlaps)
  • Give a couple test cases to demonstrate your understanding of the problem, to make you think of other special cases, and because they want someone who's test-focused if you go into QA. Give a happy path scenario and a couple negative or special cases
  • Propose a solution - do this verbally, and give its runtime complexity (and less importantly, its memory usage). If the runtime complexity is bad (polynomial, exponential), then say so and think of a better solution (there will almost certainly be one)
  • Implement the solution - verbalize your thought process while doing so. If you don't know something, say so. The interviewer will likely help you out without penalty. Listen very carefully for clues, because the interviewer will be giving them. Really understand everything the interviewer says, and understand his motivation for saying it. If you see potential bugs, say so ("I want to be careful that I don't go out-of-bounds in the last iteration of this loop").
  • Debug the solution - walk through it as if you're a debugger, using the happy path test case that you made earlier. Oftentimes, the interviewer will give you a test case with the problem. Use it - he probably selected it for a reason (the numbers are in an interesting order that will find the most bugs, for example).
  • Test the solution - Add to the handful of tests you gave earlier. Think about the different types of tests, and if they apply.

    Resources:-

    > Learning to test:

  • How Google Tests Software
  • Guice, and another
  • Google Test Automation Conference
  • Netflix's Simian Army
  • Google Testing Blog
  • Hermetic testing
  • The Art of Software Testing (I've only skimmed it)

    > Learning to interview:

  • Programming Interviews Exposed
  • Programming Pearls

    > Learning to program:

  • Design Patterns (I'm embarrassed that I don't have more recommendations for this...)

    > Miscellaneous

  • Meetup
  • Inventing on Principle

    > What sort of skills should I really hone? I realize I gave you a ton of stuff in this post, so here's a shorter list:

  1. Read How Google Tests Software
  2. Understand dependency injection
  3. Understand unit, functional (use hermetic environments), and integration testing
  4. Understand mocking (Mockito's a good one for java)

    > Examples of projects that make you look valuable

  • Refactoring product code to be Guice-friendly
  • Tool to profile method calls simply by adding annotations
  • Tool to automate bug filing/updating/closing - assign to the right person, re-activate when they repro, give good steps, close when they're fixed and don't repro
  • Tool to automatically quarantine flaky tests that aren't caused by product bugs
  • Aggregation of distributed logs into central, indexed location (I didn't write the solution, just did the work to integrate an existing one (Logstash/Kibana))
  • Automatically display the picture of the team member who checks in code with the highest coverage (I didn't do this, just something cool I read about)
  • Tool that logs messages with contextual information, so for example you can see all messages associated with user 123
  • Tool that captures inter-server traffic, associated with the user-request
  • Tool that provides metadata about test cases in your web proxy
u/jimmyscrackncorn · 0 pointsr/The_Donald

>But what people don't know is with every manufacturing job that disappeared, 1.6 service jobs also disappeared - waiter and barista for example

>#1.6 service jobs also disappeared

It's already been happening dingus, for a long time. And do you really think that the workers at McDonalds would be demanding $15/hr minimum wage if it was full of teens/college students like it was in the 1980s-early 1990s when there were decent manufacturing jobs?

No.

Because all of those decent paying manufacturing jobs have been eliminated, every eliminated manufacturing job has also taken 1.6 service jobs. Those people have not gone anywhere - all of the unemployed manufacturing positions are taking these service jobs and demanding the old 1980s-early 1990s manufacturing living wages. There are less service jobs because there are less manufacturing jobs but all manufacturing sector unemployed are competing for the less prevalent service jobs.

It's basic economics guy. If you are only a high school grad in 2000s America you are fucked career wise in most cases.

READ THIS BOOK FROM YOUR LOCAL LIBRARY


A lot of people think we are all divided by red and blue ideologies but we are even more divided by blue collar, white collar, and gray collar.

u/LocalAmazonBot · 0 pointsr/cscareerquestions

Here are some links for the product in the above comment for different countries:

Link: Cracking The Coding Interview


|Country|Link|
|:-----------|:------------|
|UK|amazon.co.uk|
|Spain|amazon.es|
|France|amazon.fr|
|Germany|amazon.de|
|Japan|amazon.co.jp|
|Canada|amazon.ca|
|Italy|amazon.it|
|China|amazon.cn|




This bot is currently in testing so let me know what you think by voting (or commenting).

u/__shittyprogrammer__ · 0 pointsr/learnprogramming

I have ADD too, it may take you longer to learn programming than some other people and that is ok. I highly recommend Vyvanse if you can afford it, if not I would ask your doctor about Adderal. Write down your programming goals and proactively minimize distractions. If you get too distracted programming at home, go to the library, put on some headphones and listen to Bach. Writing things down helps a lot, keep a notes.txt or goals.txt on your desktop and keep them open. Look into ways to manage your time better. There is tons of help out there on the internet. I also recommend the book Pragmatic Thinking & Learning (http://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050)

Good Luck, remember programming is something you have to work on your whole life and each day you just get a little bit better.

u/S0phon · 0 pointsr/Tekken

If anybody wants to read about this topic in more detail and more learning (instead of performance) oriented, try this book: https://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050

Hell, there's even a life-book that focuses on the two selves: https://www.amazon.com/Untitled-Mark-Manson/dp/0062888439

u/menotninja · 0 pointsr/learnprogramming

I am sorry you are having a hard time.

When I feel low about programming/engineering, I sometimes find a good book or two for motivation. The Passionate Programmer is one of my favorites.

u/plush_bunny · -1 pointsr/learnprogramming

While it's a good idea to know a basic idea of what data structures there are, Programming Interviews Exposed was super helpful in reviewing important concepts as well as prepare me for my interviews. Honestly, I didn't learn my data structures properly the first time around for interviews, and that book and Cracking the Coding Interview were immensely useful for both algorithms and data structures.

u/happykal · -2 pointsr/javahelp

The only thing you need to do is buy... and read a bool called "cracking the coding interview". Do the quiz questions... Cracking the Coding Interview, 6th Edition: 189 Programming Questions and Solutions https://www.amazon.co.uk/dp/0984782850/ref=cm_sw_r_cp_apa_i_5nTqDbS1RTATM

You do that... i guarantee youll blast through the interview.

u/Troll_God · -5 pointsr/Michigan

If you "stopped reading" at where I said "leftist," then you would have never made it to the part where I talked about the GOP. How are you going to let me catch you in a blatant lie within your first sentence, lol.

What I was referring to in that statement was the book called Who Really Cares which was written by a liberal who wanted to research which states, conservative or liberal, gave more to charitable organizations. Spoiler alert, to the liberal author's dismay, nearly all of the top 30 states that contributed to charity and the poor were conservative states. The author infers that, because liberal (leftist, really) states believe that the government should take care of everyone, they don't actually donate as much or contribute to charity. In other words, they are all talk but truly do not care about others. I thought it was worth mentioning because it's another phony aspect of leftists on how they pretend to be "compassionate to human life" yet give less to charity and want to murder unborn (and born) babies. You can read the book yourself here: https://www.amazon.com/Who-Really-Cares-Compassionate-Conservatism/dp/0465008232/ref=sr_1_1?keywords=Who+Really+Cares&qid=1557952596&s=gateway&sr=8-1

u/sheepdog69 · -9 pointsr/cscareerquestions

Cracking the Coding Interview

She covers not only algorithms, but also how to think about the problems you are given. I'm not usually a fan of these type of interview prep books, but this one is really good.

The only thing I don't care for about it is the focus on interviewing at the "big 4"