#2 in Business & money books
Use arrows to jump to the previous/next product

Reddit mentions of Cracking the Coding Interview: 189 Programming Questions and Solutions

Sentiment score: 104
Reddit mentions: 180

We found 180 Reddit mentions of Cracking the Coding Interview: 189 Programming Questions and Solutions. Here are the top ones.

Cracking the Coding Interview: 189 Programming Questions and Solutions
Buying options
View on Amazon.com
or
    Features:
  • Careercup, Easy To Read
  • Condition : Good
  • Compact for travelling
Specs:
Height10 Inches
Length7 Inches
Number of items1
Release dateJuly 2015
Weight2.69 Pounds
Width1.59 Inches

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

Shuffle: random products popular on Reddit

Found 180 comments on Cracking the Coding Interview: 189 Programming Questions and Solutions:

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/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/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/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/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/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/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/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/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/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/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 colin@parsehub.com

    [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/elliotbot · 13 pointsr/cscareerquestions

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

Nope:

u/xfoxyx · 13 pointsr/cscareerquestions

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

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/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/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/ShadowWebDeveloper · 10 pointsr/cscareerquestions

I interviewed at Google this year and I'm 33. The ageism you hear about sometimes, while it exists, seems to be less prevalent than some would have you believe. If you're worried about it, Triplebyte (referral link) does completely background-blind interviewing for SF and NYC companies (though you do have to be quite good to get through their process; see below first). (This might not work for OP anyway if they are in Australia since they might need a visa, and Triplebyte AFAIK doesn't do that.)

I guess where to start would depend on your background. Do you have any software itches you could scratch? That is, is there some solution to a problem you see either in your job or your daily life that you might be able to automate or solve with software? Maybe start with that; set up a respository on Github and start planning and coding it up (though if it has to do with your job, clear it with them first).

I recommend learning Java or C++. The concepts you learn in those languages will transition to others pretty easily.

If you're looking into bigger companies or startups, I recommend watching MIT OpenCourseware 6.006, Introduction to Algorithms and maybe following along with the class assignments (all free). If you can make it through this course, along with Cracking the Coding Interview, you'll be well on your way to being able to clear many DS&A-style developer interviews.

For others in this thread, $100K AUD is apparently $80K USD (but as OP mentions, Australia has a high COL so its purchasing power is probably lower).

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/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/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/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/Dont_Hate_On_XIII · 9 pointsr/uwaterloo

Have you seen the SE Bible?

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/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/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/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/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/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/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/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/___________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/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/[deleted] · 6 pointsr/cscareerquestions

For DSA I always recommend Cracking the Coding Interview (I think I’ve linked it at least 10 times on this sub... cause it works) it’s on amazon rn for 40$:

Cracking the Coding Interview: 189 Programming Questions and Solutions https://www.amazon.ca/dp/0984782850/ref=cm_sw_r_cp_api_i_QtjXCbCN7EEN4

For Big Data/Github Projects, you want to show you understand the pipeline from start to finish. Your projects should show you can find data, clean and prepare it, preprocess, train, test and then deploy. I’d say 99% of people start with the MNIST data set (people who know MNIST are probably laughing right now reading this). Most people you’ll be interviewing against will likely have an MNIST project on their github, so if you want to outshine them, follow this MNIST tutorial but DON’T put it on your GitHub (or do for now but remove it when you add more projects):

https://www.tensorflow.org/tutorials/keras/basic_classification

After following that tutorial, try to repeat the process but with other datasets. There are millions of free datasets available online, pick ones that are relevant to your hobbies outside of work, so when you interview you can start with “I really love blah blah in my personal time, so I decided to train a neural net to recognize blah blah, and so I found (or even better, created) a dataset for blah”

For example, I love going hiking and often wonder what kinds of birds I’m seeing in the forest, so I found a dataset of bird pictures that were labelled, trained a neural net to recognize them, and hooked it up to an app so I can now point my phone at birds when I’m hiking, and find out what species of bird I’m looking at.

As for the management/marketing thing, I can’t really give you any useful information so I’ll leave that to someone else.

Also, sorry for the formatting, I’m on mobile. Good luck!

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/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/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/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/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/enteleform · 5 pointsr/Python
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/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/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/Soreasan · 4 pointsr/learnprogramming

I would cross-post this to /r/cscareerquestions since that's the subreddit that's more career focused.

My recommendation is to start building a coding portfolio. Specifically set up an account on www.github.com and start posting some of your projects there. Basically how github works is after you set up an account you download the client and create a folder on your computer. Any code or documents you put into that folder and then "push" will appear online. This will allow you to have lots of code samples to show a prospective employer. Another good idea is to build your own website. There are a couple of good web hosts such as www.bluehost.com and www.nearlyfreespeech.net. I personally use www.nearlyfreespeech.net because it's very very cheap. (You pay only for what you use and since your website will primarily be used to show employers it will be a few cents a month.)

Once you have a website and Github you'll also want to start studying more and learning more and then creating personal projects. There are a lot of good places to continue learning programming. You could sign up on www.pluralsight.com for their $29 a month plan and then follow along with courses. Alternatively you could buy books about programming and go through them and upload code samples to Github as you go through them. (A strategy I use is to look at books on www.amazon.com and buy used copies or copies that are 1 edition older than the current edition, it is very realistic to get books for $4 including shipping and handling.) There are also many free resources such as www.codeacademy.com.

Some good books you could buy that will help you once you get job interviews are: Cracking the Coding Interview, Programming Interviews Exposed, and Elements of Programming Interviews. Out of these books "Programming Interviews Exposed" is the best for beginners while the other two are more meant to get you ready to interview at huge companies like Google or Microsoft.

As far as projects to do just pick some ideas and implement them. For me personally I made a website (www.cslearner.com) and created my own blogging software. There is better blogging software out there then the stuff I wrote for myself but it beefs up my portfolio and gives me something to talk about in job interviews. One idea may be to make some sort of CRUD application/website. CRUD stands for CREATE, RETRIEVE, UPDATE, DELETE. Since a lot of what we do as software developers is data manipulation you can create some sort of app or website that creates and manages information. In my case the first CRUD thing I created was a comment section using PHP and MySQL. Literally all it did was allow people to post comments on a website and then a SELECT statement would display all the comments that people had left. You could do a similar project. The cool thing about CRUD is that you can build apps using a huge assortment of technologies. You could create a CRUD app using ASP.NET, server side Java(JSP), PHP and MySQL(the LAMP stack), or a bunch of other technologies.

Also a huge thing is to apply for jobs even if you don't feel very ready. Check out this YouTube video in particular. Employers put down a wish list of things they'd like in a candidate but know in advance they won't get everything they'd like. If you seem like someone that could learn the technologies they may hire you even though you don't know everything yet. Also you'll want to apply to a lot of places. I've had 15 job interviews so far (I'm graduating this next April) and I have no job offers yet. This means I have to apply to even more places. Even though Computer Science is a very high demand field job hunting is still hard and you still need to put out lots of applications.

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/firecopy · 4 pointsr/cscareerquestions

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

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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/gg_by_fg · 2 pointsr/cscareerquestions

The sixth edition. It's very green.

Edit: damn markdown...

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/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/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/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/zach2good · 2 pointsr/AskProgramming
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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/hwillis · 2 pointsr/ECE
  1. software internship

  2. READ THIS
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/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/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/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/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/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/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/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/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/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/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/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/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/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/mad0314 · 1 pointr/learnprogramming

This book is often recommended for this subject.

u/tact1cal · 1 pointr/cscareerquestions

Probably you wouldn't get much for 3 days, but for the future:

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/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/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/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/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/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/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/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/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/cjrun · 1 pointr/cscareerquestions

It is troubling you didn't mention Data Structures once in your post!


Data structures, data structures, and...data structures. You should understand how to implement a binary tree in code and search the nodes. You should recognize where to use a stack, where to use a hashtable. You should understand the time complexity of loops and traversing arrays and structures. Your degree will inevitably crack open some interview doors for you, but once you are live coding with an engineer on the other end of the phone, it's game on. Data structures should be something you think about frequently, and often. Most companies consider them FUNDAMENTAL skills.


As far as math, it isn't a requirement for the vast majority of software jobs out there to know too many math concepts, but it does help in understanding the underlying theories of the technology you are working on. If you end up working in machine learning, embedded, systems engineering, test design engineering, or bioinformatics, you are going to be assaulted with math constantly. Social networks and any kind of networking is also going to benefit from having math skills.

I am a CS major with math minor, so I can relate.

Visit www.hackerrank.com and sign up for an account. Then, go through the data structures quizzes in any language you feel most comfortable with. This will also help you when during live interviews they use similar online coding environments.


Second, if you pay attention in database class and are lucky enough to be in a school that offers "Advanced database development" or something similar, JUMP ON THAT. So many engineers are weak in that area.


Third, it should be nagging on you constantly to get this book ASAP. It is the industry standard for understanding coding interviews. If you don't have it yet, then make it your immediate life mission to find $20 and get a copy. Even if you feel you are not ready for some of these problems, just read them and let it sit in your brain for a few months/years. The concepts of data structures and algorithms need to be absolutely burned into your cortex.
Cracking the coding Interview by Gayle Laakmann McDowell

Good luck!

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/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/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/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/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/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/_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/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/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/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/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/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/prakashdanish · 1 pointr/india

have you tried this? I have seen it mentioned almost everywhere.

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/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/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/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/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/MrDjibrilo · 1 pointr/serbia_casual

Pogledaj ovu knjigu. Sve zavisi od kompanije do kompanije.

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/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/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/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/Nadrieras · 1 pointr/IAmA

You should really really pick up a copy of Cracking the Coding Interview.

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/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"