Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks.
On June 13 2015 04:02 sabas123 wrote: Im sorry about being so awefully unspecific.
The thing I meant was to learn more about cs patterns, and thought that writing compilers would be a good place because it would be rich of diffrent techniques and patterns to learn from.
I geuss the thing im trying to say is, what kind of knowlage should I look for to improve myself after learning basic OOP stuff like polymorphism and clean code?
It's hard to tell over a forum, but judging from the fact that you mentioned polymorphism as something that you learned: Just get some actual practice. I suggest that you pick something less theoretical than a compiler. And, as mentioned above, be critical of your own code. Always explore better ways to do something.
On June 13 2015 04:02 sabas123 wrote: Im sorry about being so awefully unspecific.
The thing I meant was to learn more about cs patterns, and thought that writing compilers would be a good place because it would be rich of diffrent techniques and patterns to learn from.
I geuss the thing im trying to say is, what kind of knowlage should I look for to improve myself after learning basic OOP stuff like polymorphism and clean code?
I guess that the first thing you should note is that most compilers are written in C, which has exactly 2 patterns to learn - DRY and KISS (the most important ones of them all). You also won't get much OOP with it either.
To address your other concerns, clean code isn't really a pattern or an OOP stuff, it's pretty general stuff that you can (and should) apply to every programming language. You said you've learned polymorphism, but have you learned some actual patterns, how to recognize them, when to use them and so on? I'm talking about stuff like observer, factory and others.
You should definitely read up on SOLID and GRASP too while you're at it. Those are good methodologies that make use of design patterns.
the reason why I mention polymorphism is that it was pretty much the most advanced topic I could find in my course planning for the remaining parts of my study.
Since I didn't really knew what to start learning I tried to improve the things I was currently making, thus learning how to write clean code by the SOLID principles,
I never heard about GRASP, ill be looking into that, thanks.
Whenever I glimpse some code in a movie or a TV show I'll try to figure out what it does, if it's any good etc. Sometimes there's really cool stuff in there, easter eggs, some fun algorithms and such. Matrix was really disappointing in this matter, a pity.
My latest find that I didn't get to work on yet, but I sure will as it'll let me scrape some rust off of my C knowledge (at least I think it's C from the brief glimpse).
On June 13 2015 07:37 Manit0u wrote: My latest hobby:
Whenever I glimpse some code in a movie or a TV show I'll try to figure out what it does, if it's any good etc. Sometimes there's really cool stuff in there, easter eggs, some fun algorithms and such. Matrix was really disappointing in this matter, a pity.
My latest find that I didn't get to work on yet, but I sure will as it'll let me scrape some rust off of my C knowledge (at least I think it's C from the brief glimpse).
Ends with the includes, looks legit *sarcasm* Yup, it's C; C with holes, that is... seems like it's doing something with buffers.
I hate any form of programming, hacking, ... or anything related to technology in TV shows or movies, because it's always so 'wrong', or really overdramatic (see below):
Yeah, I know. That's why I'm going through some of the code I find this way and see if any of it is real. Pertaining the C stuff I posted above, the includes were at the bottom because it's just some loose notes. According to the show said code was pertaining to some multi-threading... The code on the computer screen (related to the notes) is supposedly some revolutionary compression algorithm.
On June 10 2015 15:57 Itsmedudeman wrote: So guys, I'm in need of advice. I graduate pretty soon as an ECE major (basically electrical engineering) but I think I want to be programming in my career instead. Unfortunately I'm not in a a position to take an extra year of school to graduate with a CS degree, but I have taken quite a bit of CS related stuff including operating systems, data structures, and mobile application development courses. Right now I'm just working on some side projects of mine over the summer and building some web applications and possibly some native applications for android/iphone, but I'm worried about getting a job once I graduate since I'll be behind other people who graduated with CS degrees. I didn't take an algorithms course, or other database courses. What do you guys suggest would be helpful for getting a job in my current position?
TLDR: Not graduating with a CS degree, have some skills, working on apps, what to do from here for a career in programming?
just apply to SWE jobs and try to have something on your resume that indicates you have programming knowledge/experience
You'll need algorithms and database knowledge down pat if you want to pass interviews, because almost all the interviews you'll get will involve heavy technical questions. for example between the 14-15 combined interviewers I had @ Google, Facebook, and Microsoft only one of them asked me anything related to systems design and the rest were all whiteboard coding problems. Focus on one language, preferably one of Java/C++/Python. I had one startup that specifically wanted me to write Java code (and I'm not really up to snuff with Java) but in most cases you can write somewhere in between a real language and pseudocode, as long as your interviewer understands you-unless they are having you work on a laptop or coderpad in which case they probably expect your code to run.
The hardest part is getting to the point where they ask you to interview. Try to contact people on LinkedIn (I used the free trial month of premium) and if your school still is having job fairs go to those. If you have attended any job fairs or you have exchanged emails with recruiters, ping them via email with a line saying how you met them. Tell them a little bit about yourself and hope they ask you for a resume and a follow-up (don't cold-send them your resume because most people don't like that for whatever reason, at least in my experience)
Also if you want a somewhat easier time, make a profile on AngelList (www.angel.co) and start marking startups that interest you. It was very very useful for me and once I got an offer from a startup that I had been introduced to via AngelList my job search accelerated incredibly because other companies also wanted to hire me or at the very least wrap up my process within the time frame I set for them. If you're not perceived as a potential value to an employer they will generally not give you much priority and you can get stuck in their process-most of my friends who interviewed at Google/FB/Microsoft etc. and ended up getting offers were the ones who already had offers from other places. Those who didn't, even if they ended up getting hired in the end, had to go through 3-4 months of bureaucracy.
e: also I should stress if you are doing side projects it helps tremendously to be doing things you are actually interested in, because interviewers like when they can get a candidate to talk at length about something and sound like they know what they were doing (and simultaneously be able to explain it) Toward the tail end of my last job I was interviewing candidates for SWE and one of the best ways to figure out if someone would be a good fit or knew what they were doing was to see how they would respond to questions about some project they listed on their resume.
On June 13 2015 08:16 Manit0u wrote: Yeah, I know. That's why I'm going through some of the code I find this way and see if any of it is real. Pertaining the C stuff I posted above, the includes were at the bottom because it's just some loose notes. According to the show said code was pertaining to some multi-threading... The code on the computer screen (related to the notes) is supposedly some revolutionary compression algorithm.
Considering that most of that code consists of output and parsing the startup paramerters of the program, I'd doubt that it's a compression algorithm. I also find it slightly fishy that there is no indentation and no closing braces. As for the note: on the plus side it uses ++i instead of i++. But it doesn't seem to do much else.
Unrelated: I recently stumbled across this thing: Wat. It was mentioned on the most recent explainxkcd and is highly amusing. I had to download the video to watch it.
And yes, especially as a new grad, you will be expected to have roughly 0 system design ability. To the extent you get asked one, it will probably be to probe and see if you're very exceptional, but the expectation is probably that you would fail*.
Lack of a CS degree is not a dealbreaker. If you have some CS coursework and an ECE degree, you should be able to get your foot in the door. Most big places have a spot specifically for new grads where you can send in resumes. Apply to many places, expect that many will not respond.
btw also programming contest websites are pretty useful if you want to just start doing interview-like questions.
Do them on a pad of paper where you time yourself to like 20 minutes. You want to talk to yourself as you solve the problem, and the reason for the time limit is because most interviews are like 45 minutes but you sometimes spend the first half talking about your resume and random other stuff before starting. The faster you can do those problems the easier you'll have it in a high pressure setting in which you are in an unfamiliar place, talking to an unfamiliar person, and potentially trying to solve an unfamiliar problem.
I used hackerrank and topcoder a lot just to get some more experience solving short problems. If you do their DB/algorithms sections and just plow through as many problems as you can you'll get a lot of good experience and probably encounter some problems that are similar or identical to many that are asked by technical interviewers.
put whatever you are proud of on your github or bitbucket or whatever and put that link in your resume as well. I had about 3-4 people contact me through my github instead of my LinkedIn-since I had it forwarding to some random email I never check I got burned because I missed out on an interview from a couple companies I liked in my area due to it.
On June 10 2015 15:57 Itsmedudeman wrote: So guys, I'm in need of advice. I graduate pretty soon as an ECE major (basically electrical engineering) but I think I want to be programming in my career instead. Unfortunately I'm not in a a position to take an extra year of school to graduate with a CS degree, but I have taken quite a bit of CS related stuff including operating systems, data structures, and mobile application development courses. Right now I'm just working on some side projects of mine over the summer and building some web applications and possibly some native applications for android/iphone, but I'm worried about getting a job once I graduate since I'll be behind other people who graduated with CS degrees. I didn't take an algorithms course, or other database courses. What do you guys suggest would be helpful for getting a job in my current position?
TLDR: Not graduating with a CS degree, have some skills, working on apps, what to do from here for a career in programming?
just apply to SWE jobs and try to have something on your resume that indicates you have programming knowledge/experience
You'll need algorithms and database knowledge down pat if you want to pass interviews, because almost all the interviews you'll get will involve heavy technical questions. for example between the 14-15 combined interviewers I had @ Google, Facebook, and Microsoft only one of them asked me anything related to systems design and the rest were all whiteboard coding problems. Focus on one language, preferably one of Java/C++/Python. I had one startup that specifically wanted me to write Java code (and I'm not really up to snuff with Java) but in most cases you can write somewhere in between a real language and pseudocode, as long as your interviewer understands you-unless they are having you work on a laptop or coderpad in which case they probably expect your code to run.
Wow, I could never go to that many interviews for a job. I don't even bother to apply to such large places. Way too intimidating.
I applied to a place I thought was smaller before, ended up being 3 people interviewing me one by one over the course of 2-3 hours. Terrible experience, especially because only the first interview was really meaningful and the others were largely just repeating stuff I mentioned to the first guy.
On June 14 2015 12:02 Amnesty wrote: SQL question, Obviously a simplified a example
database Colums id Color 1 Red 2 Red 3 Yellow 4 Green
What i would like. Gives me the total counts of colors
Color Count Red 2 Yellow 1 Green 1
Note i don't know beforehand how many colors are present. Its not a fixed set. How can i accomplish this?
if you have to turn to a forum for a rather simple SQL question like this, i suggest you take the time to work through this amazing SQL interactive tutorial: http://sqlzoo.net/
On June 14 2015 12:23 killa_robot wrote: Wow, I could never go to that many interviews for a job. I don't even bother to apply to such large places. Way too intimidating.
I applied to a place I thought was smaller before, ended up being 3 people interviewing me one by one over the course of 2-3 hours. Terrible experience, especially because only the first interview was really meaningful and the others were largely just repeating stuff I mentioned to the first guy.
it sucks but that's the way you have to do it if you want a well-paying job at a tech company in SV.
Most of my on-site interviews were all-day affairs, usually starting around 10 in the morning and ending around 4. The hardest part is the fatigue once you have enough practice and you know what is expected. Also you can consider the phone screens to just be individual interviews prior to the "real thing".
But it paid off for me :D hard to beat $150k++ in annual compensation and amazing perks right out of college
edit: also I should say that some of the hardest interviews are not at the places you'd expect. The ones for me that were hardest were some startups in SF and places like Dropbox, Quora, Patreon etc which are on the smallish to medium size.
for example at one of the places I interviewed at I was requested to solve something that is a slight variation of the collaboration distance problem. (e.g. Kevin Bacon number or Erdős number) and I was given maybe 20-30 minutes to whiteboard my solution to the problem which was initially not in an easily or obviously solvable format. I'm pretty sure that question was designed to fail almost every candidate that applied.