|
shrughes posted:Wrong. Programming = software engineering.
|
# ? Jun 13, 2013 15:22 |
|
|
# ? May 22, 2024 10:30 |
|
shrughes posted:Really? Because I personally know people at Google without a CS background. They are good at data structures and algorithms of course, because who isn't? (Bad programmers.) Being good at data structures and algorithms sounds like the basis of a good CS background to me. I bet they can also analyze their algorithms for efficiency and defend their correctness. I bet they can even recognize related problems and understand how to reduce one problem to another. Those are the kinds of things you have to do in Google interviews. Are you being insistent that they didn't get this experience from college, (which is fine and totally reasonable) or are you saying they have this background but also don't? Another good question is why you're so angry and don't explain your ideas more than simple statements of fact. I guess I wasn't expecting trolls in CoC.
|
# ? Jun 13, 2013 15:23 |
|
shrughes posted:Programming = software engineering. Wrong. Almost no programming is engineering.
|
# ? Jun 13, 2013 15:59 |
|
What I am objecting to is the tripartite division between the notions of programming, software engineering, and a CS background. Pigdog says that programming is just part of software engineering -- I would say (and this is just a question of definition) that programming is the writing of computer programs. And on a personal level or on a team level, programming has mathy parts and non-mathy parts. The very core is a mathy part: writing actual code, holding the partial state of the program represented in your head, proving (or praying) that the code you're editing is being correct. This is what some people might assign as the definition of "programming" but that would be like calling sawing and hammering carpentering. At that low level you also have non-mathy parts, like naming your variables with reasonable names, using basic standards of indentation, and commenting where necessary for other people. There are also things like designing your interfaces so that they're difficult to use incorrectly (for example, by ignoring error codes or passing invalid values), which are partly mathy and partly non-mathy in nature. At a slightly higher level, you've got mathy parts, like figuring out how fast you expect the program to run and designing the data and algorithms such that it's fast, and again, non-mathy aspects, like writing tests where appropriate, making sensibly sized commits, writing decent commit messages, and actually making sure you're making something that behaves the way people want. (Edit: Of course, figuring out what tests are most appropriate is a mathy part.) Then you've got things like managing teams of people writing software. Again there are mathy parts and non-mathy parts. For example, at some point you might need to make an executive architectural decision, like "We are going to use asynchronous I/O for this project, and all communication between threads will typically be done by message passing." A mathy aspect of that decision is, what are the performance implications? A non-mathy aspect would be, how would this affect development speed? (Actually, this is a lie! Both aspects of the decision are mathy.) But there are non-mathy aspects like, again, actually making sure you're making something that behaves the way people want. Otto Skorzeny posted:Wrong. Almost no programming is engineering I'm sorry you went to a school with a second-rate CS program so you have this deep-seated need to identify yourself as an engineer moreso than the typical developer, but this is just plain nonsense. Suppose somebody's grampa wants to build a table. He builds a table. Has he done engineering? Yes. He designed a table that doesn't fall over. Maybe he accomplished this by thinking "the center of mass is above the convex hull of formed by the table legs touching the floor" or maybe he accomplished this by simply following the forms of how most tables are designed. Either way, that's engineering. Many stereotypical dumb developers might be gluing together Ruby on Rails apps by following the forms of how they work without understanding what's going on, but guess what: that's engineering. Engineering school is designed to make people good at engineering. You are confusing the notion by thinking that what engineering school teaches is engineering. No. It teaches stuff that's useful for being good at engineering. Grampa tablemaker is doing engineering too, and he's doing something simple, but he's doing a fine job of it. Also you conflated the reliability needs of projects that cost a lot more money to build or fix than to design, or which cause a lot of damage when they fail, and then cargo-cultingly applied them to software. You know what the soft in software means, don't you?
|
# ? Jun 13, 2013 16:17 |
|
The question of whether to get a CS degree has been fought over endlessly and I don't intend to push a simple "yes" answer here, only to address the assumptions made by simple "no" answers. The main thing is that you can't just assume that there will be someone in that first job that you land while in college to teach you CS stuff. For all you know the company could be full of anti-intellectuals who see a complete CS education as a liability and that's why they're hiring you. Even in big companies (e.g. Amazon) there are jobs where the focus is 100% on babysitting the legacy code base and chasing the next buck, not making you any better as an engineer. You can expect to learn version control, and build management, and lots of domain tech. You cannot assume that you will learn cross-domain theory. In my first (embedded C) programming job I learned lots of domain tech. It would have been very useful for the code base I was working on to know about closures and data normalization. I didn't know about them, and none of my colleagues did either. Those are the sort of high-level concepts that one doesn't usually associate with low-level embedded C, yet there they were in the code, and without any labels to tell me what they were so I could go study them on my own. So I just blundered my way through and didn't learn about either one until I went back to school. Yes there are lovely CS degree programs, which is why in the US I would always advise finding one that is ABET-accredited or a big enough name in the field (e.g. Stanford) that they don't need it. But nobody had brought that up, so I didn't mention it.
|
# ? Jun 13, 2013 16:25 |
|
Nobody calls building a table or a woodshed mechanical engineering. You have managed to outdo yourself in sophistry, shrughes.
|
# ? Jun 13, 2013 16:26 |
|
shrughes posted:What I am objecting to is the tripartite division between the notions of programming, software engineering, and a CS background. Pigdog says that programming is just part of software engineering -- I would say (and this is just a question of definition) that programming is the writing of computer programs. Well, those are just 3 facets of software development. There are more, and I can see how the way I wrote would lead you to think I was expressing a strict partition. That's not really what I was getting at. CS skills are a facet of being a good developer, just like engineering skills or managing people, depending on your role in a project. When someone says "if you want to work hard and really study, go to school" and you simply say "no," that sounds very wrong so you're going to get called out on it. It's not a requirement, but for most people it may as well have been. I don't think I could have gotten through all of those proofs in Introduction to Algorithms without some help. Then again, I grew up in a small hick town and my math skills were poo poo going into college.
|
# ? Jun 13, 2013 16:35 |
|
I didn't call it engineering either. Designing the table so that it doesn't fall over is engineering.
|
# ? Jun 13, 2013 16:35 |
|
This is the closest thread I can think to ask this. I'm going to be interviewing someone who would come in as my manager. I've got a pretty good idea how I'll approach it, but any advice from the regulars here?
|
# ? Jun 13, 2013 16:59 |
|
Gazpacho posted:Yes there are lovely CS degree programs, which is why in the US I would always advise finding one that is ABET-accredited or a big enough name in the field (e.g. Stanford) that they don't need it. But nobody had brought that up, so I didn't mention it. I'd just like to point out that Stanford undergrad tuition is $56,411. For some people going to a big name school isn't an option, and ABET accredited doesn't guarantee a quality education. What would you say to that? I guess that what I'm trying to say is that there's probably no hard and fast answer to the "Should I go to school" or "What school should I go to?" question. A lot of that equation comes down to money and the quality of the CS department that you'll be enrolling at. I feel that that last bit is more important and harder to determine than any of the others, which makes choosing the right (beyond the question of should you go to school) school sort of a gamble.
|
# ? Jun 13, 2013 17:06 |
|
I would say that someone considering whether to stay in school has already decided to go there and which one, so again it's not relevant. If someone knows they're in a bad CS program, jumping into a startup gracious enough to hire them out of that same program is not necessarily the right solution. Just because I drop the name of a school doesn't mean I'm urging anyone to apply to it. Stanford is one of many schools that have solid programs without accreditation so I mention it to illustrate that lest someone accuse me of leaving it out. Gazpacho fucked around with this message at 17:27 on Jun 13, 2013 |
# ? Jun 13, 2013 17:18 |
|
In my experience at my University's CS program, you learn very little about how to write programs in an easy to read, easy to debug, well organized manner, and in no way do you learn how to write them to share with or collaborate with other people. Lots of idiosyncrasies that some professors have that limit your ability to structure things well, and on top of it all most of what you're doing is very antiquated. You certainly don't learn many idioms that are actually in use in industry. I had no idea that people were using lists over arrays of this or that, for example. I had no idea when it was a good idea to make a class. I had to teach myself interfaces so I could use a comparator instead of rolling my own lovely sort in a project! Apparently it's good pedagogy to implement a bubble sort in a loop and pass an array to it, not learn how to use generic lists and sorts, or something. I learned enough to start teaching myself with google, stack overflow and CoC, which I did. Then I got an internship and learned from there so much more than I ever did from school or myself that it was clear what was going on. Now I have a real programming job and I'll learn even more. School was useful for examining the concept of big O notation, so that your algorithms aren't complete poo poo and take almost forever, and so you have some idea of how to make a SQL query that isn't teeth-pullingly painful for the DBA to look at. Then again, actually trying to do it in the wild with someone who has experience can keep you from false starts or just being a loving idiot. The first "big" (for a student) project I saw was heralded with basically zero instruction or guidance about how to plan the project, organize it, make classes and do it in an easy to read and fix way. You were basically on your own. Because I went out of my way to bug people about how to try to organize and refactor my code, I was one of the few members of my class who actually had a line count under 1000, including a big hard coded string which I broke up over many lines which matched the hex value of operands with the mnemonic of them. There were people over 2000 who had it as an external file they (failed to) parse at runtime. Assemblers for a school project aren't the worst thing in the world, but keep in mind that most of these kids had no loving clue how to implement a sane object model and even use the "extract method" refactoring thing built in to IDEs the right way. They used to have people do it in C. Thinking back to stories of fresh grads rolling their own data structures comes to mind, since you're never even exposed to the concept that someone made a good C library to use. They also like to use doing C through pico through a ssh connection as a wringer to 'weed people out,' since as we all know vim doesn't exist and there are tons of jobs doing ancient C with the lovely standard library. It's pretty standard for fresh grads to be kind of clueless, since academia moves slowly, but I've seen a lot of not-so-great habits being passed down that has to be un-learned to the point that some employers I've spoken to were glad I haven't graduated yet I do want to finish, and I would like to be able to say "Yeah, I made a compiler " but how is that actually going to help me in the workplace? It's certainly not actually going to make me any more money over my lifetime to stop working and get in more debt! Few people make compilers and not too many people are gunning for those jobs or even motivated to take them at all anyway.
|
# ? Jun 13, 2013 17:29 |
|
2banks1swap.avi posted:there are tons of jobs doing ancient C with the lovely standard library. Just FYI, this is actually true. Making people use pico is dumb (and how do they even enforce this?) but my current job is mostly just writing C in vim inside an ssh session. My last job I did a lot of embedded C stuff where we couldn't use the standard library.
|
# ? Jun 13, 2013 17:34 |
|
astr0man posted:Just FYI, this is actually true. Making people use pico is dumb (and how do they even enforce this?) but my current job is mostly just writing C in vim inside an ssh session. My last job I did a lot of embedded C stuff where we couldn't use the standard library. I wouldn't mind doing that actually, but I've not seen any in my area, at all. Now in a few years when I get the gently caress out of Jacksonville, hey, why not? Regarding enforcement: they had you do it in a lab and gave literally no assistance unless you were using pico. Why, I don't know. I learned vim because I stumbled on someone telling me to learn it. I wish my school had brought up good text editors.
|
# ? Jun 13, 2013 17:37 |
|
Eh, the lab stuff I can understand if you had dumb TA's who only knew how to use pico. I TA'd for a professor who used emacs, so by default all the students started using emacs, and when people would ask me questions about how to do poo poo in emacs I couldn't help them because I don't know emacs.
|
# ? Jun 13, 2013 17:42 |
|
2banks1swap.avi posted:In my experience at my University's CS program, you learn very little about how to write programs in an easy to read, easy to debug, well organized manner, and in no way do you learn how to write them to share with or collaborate with other people. Lots of idiosyncrasies that some professors have that limit your ability to structure things well, and on top of it all most of what you're doing is very antiquated. 2banks1swap.avi posted:Apparently it's good pedagogy to implement a bubble sort in a loop and pass an array to it, not learn how to use generic lists and sorts, or something. 2banks1swap.avi posted:I do want to finish, and I would like to be able to say "Yeah, I made a compiler " but how is that actually going to help me in the workplace? It's certainly not actually going to make me any more money over my lifetime to stop working and get in more debt! Few people make compilers and not too many people are gunning for those jobs or even motivated to take them at all anyway. At the end of my last job I was evaluating a few different compilers, it really helped to understand what they were attempting to do under the hood or pausing the process and doing the linking myself. There are a lot of jobs where compiler knowledge can be informative that are outside of actually banging around on their internals.
|
# ? Jun 13, 2013 17:51 |
|
2banks1swap.avi posted:Stuff
|
# ? Jun 13, 2013 17:52 |
|
shrughes posted:The very core is a mathy part: writing actual code, holding the partial state of the program represented in your head, proving (or praying) that the code you're editing is being correct. Wrong. That's not what math (or "mathy") is. See? I can play this game, too. Also, re: CS degrees. My CS degree taught me just how much I don't know. Some without CS degrees never learned this fact. facepalmolive fucked around with this message at 20:54 on Jun 13, 2013 |
# ? Jun 13, 2013 17:58 |
|
JawnV6 posted:This is the closest thread I can think to ask this. I'm going to be interviewing someone who would come in as my manager. I've got a pretty good idea how I'll approach it, but any advice from the regulars here?
|
# ? Jun 13, 2013 18:01 |
|
Cicero posted:Man your school sounds awful. At mine they (attempt to) teach you coding style from the very first class, in the second one you're required to use version control, the intro to C++ class teaches basic software design and the two major projects are each thousands of lines long (and they require you to submit a design document ahead of time for each), and then there's a required junior level class in software design and testing that's one big 4-person project that takes the entire semester, with milestones and design patterns and crap like that. The lack of what you just described drove me to find an internship. Once I found out "oh I can just start working!" it became the obvious choice. JawnV6 posted:Honestly if you're able to dump a quarter of the motivation you have towards posting about all this ad nauseam towards a career at a good place you'll do fine, degree or not. That being the case is a massive relief for me, and I'm glad that it is so. I've also found I learn more about what's banging under the hood myself than in school, anyway.
|
# ? Jun 13, 2013 18:44 |
|
JawnV6 posted:This is the closest thread I can think to ask this. I'm going to be interviewing someone who would come in as my manager. I've got a pretty good idea how I'll approach it, but any advice from the regulars here? "What kinds of procedures would you implement to ensure that we design everything correctly before we start writing code? How do you feel about the waterfall development model?"
|
# ? Jun 13, 2013 19:06 |
Tres Burritos posted:I'd just like to point out that Stanford undergrad tuition is $56,411. For some people going to a big name school isn't an option, and ABET accredited doesn't guarantee a quality education. That's why I said you should do it if you can afford it. Side projects only matter so much and if you have two people with some roughly equivalent bullshit side projects and one has a degree, the person with a degree is more likely to succeed on principle. You can get a job doing web development without a degree, but it doesn't necessarily make you a good developer, especially if you don't have an understanding of various parts of theory where a traditional program can be of help. College curriculums are often only as helpful to you as the effort you put into them. However, for what it's worth, the entire CS market is hosed anyway in the next few years if the non-SF/NYC/Austin markets don't become more flexible towards non-senior developers.
|
|
# ? Jun 13, 2013 19:46 |
|
gucci void main posted:However, for what it's worth, the entire CS market is hosed anyway in the next few years if the non-SF/NYC/Austin markets don't become more flexible towards non-senior developers. What do you mean by this?
|
# ? Jun 13, 2013 19:49 |
|
seiken posted:except the bit about system-level design - I definitely got an interview on that when I interviewed straight out of university. Well I stand corrected, then. Glad I didn't get that question in my interviews, hoho. Doghouse posted:Thanks for taking questions on this! I'm still in school but have always been very interested in Google, and recently have become even more interested. I have a few random questions: Um, any reason you're interested in Google in particular? Honestly there are a lot of other companies in the Bay Area alone that are just as nice places to work, if not better. 20% time -- someone who have been here longer can probably answer this better. I'm certainly not doing a 20% project. The 20%ers I've come across seem to be like, people who work on one team but is "interested" in the work that another team does, so they volunteer in some time there. (This can often lead to people transitioning into that team full-time down the road -- it seems like "teams" and "positions" are pretty fluid around here, with people moving to/from projects all the time as their interest in a project waxes/wanes.) Or else, there's some mini side-project that is useful to Google/Googlers that's being staffed by 20%ers only. No, it's not "do whatever you want," and certainly not everyone does it. Most people around me seem to work normal 40ish hour weeks. Most people are either (1) married with young kids, or (2) single with outside hobbies, so that necessitates that. You do get the odd go-getter types too, though, who are fast-tracking their way up. The people who work super hard do seem to get rewarded. But no, never do I feel like I need to be one of them. I've visited a few offices and well, the decor is different I suppose. The people feel the same though. I mean, on a given team, chances are that people will be spread across different offices (this is becoming the norm in tech, nothing specific to Google), so there isn't really a chance for each office to develop any particularly insular cultures. (Then again, maybe I'm just not that observant!) Does that answer your question? As someone else said, I think Reston is largely people-who-have-to-deal-with-government-people or something. There's a small team of group of engineers there though. I think overall, it's not that big of an office. Politics, I can't really speak to because I hadn't been here long enough to be aware of these things. Doghouse posted:That was really informative, thanks. I guess I was just trying to get a more general picture of who they are hiring. Do you basically have to be the best of the best of the best (in which case it probably ain't gonna be me), or are they hiring just smart, successful candidates with solid skills and solid intern experience/projects/etc? Google certainly has people who are best of the best of the best, but well, let's put it this way -- they wouldn't have many employees if they only hired best of the best of the best. So at my last company (and probably at the "average" tech company?), we had some guys who are solid and competent, whose work and opinions I'd trust and respect. And then we'd have a bunch of deadweight who were being carried by the first group. Google just seems be all of the former group with none of the latter.
|
# ? Jun 13, 2013 20:52 |
|
So a friend is interviewing at this company, and they told her she was in the final two candidates, pending a presentation. They then told her that she beat out the other candidate but they were now going to evaluate another new person as well. Anyone ever had that happen before?
|
# ? Jun 14, 2013 01:39 |
|
astr0man posted:Got an interview in 20 minutes. I hope I can stay awake through it . I've been up since 330 this morning because this company booked me on a super early flight to come out to Virginia. Didn't get this job. Basically they claimed I lacked experience in this one very nitpicky technical discipline that normally they would train me up on, so if I was willing to relocate they would hire me but they don't want to hire me as 100% remote. Even though in the interview when a question about this very thing came up I was able to ask one clarification question about something that I had never seen before and then was able to figure out and give an acceptable answer to the question. So really they just came across as needing an excuse to get me to consider relocating. Even though through this whole process I have told them "no I am not willing to relocate is that going to be an issue at all" at which point they consistently reassured me "oh no don't worry that won't be any problem at all." Whatever.
|
# ? Jun 14, 2013 01:59 |
|
I went to interview with Amazon the other week with zero expectation of receiving an offer. I currently have a job, but I thought I would do it to test myself and get experience interviewing under stress--why not, right? I just sent my signed offer back to the hiring manager. I'm moving across the country to Seattle in a month.
|
# ? Jun 14, 2013 03:49 |
|
Risible posted:I went to interview with Amazon the other week with zero expectation of receiving an offer. I currently have a job, but I thought I would do it to test myself and get experience interviewing under stress--why not, right? What group are you going to?
|
# ? Jun 14, 2013 04:16 |
|
Cicero posted:Aww yeahhh I'm going to one of application engineer groups that support the Kindle. Risible fucked around with this message at 04:49 on Jun 14, 2013 |
# ? Jun 14, 2013 04:44 |
|
Risible posted:I'm going to one of application engineer groups that support the Kindle.
|
# ? Jun 14, 2013 05:40 |
|
facepalmolive posted:Um, any reason you're interested in Google in particular? Honestly there are a lot of other companies in the Bay Area alone that are just as nice places to work, if not better. I guess I've always really liked Google products (I use tons of them on a daily basis), so I thought it would be very interesting and rewarding to work for them. And from what I have read the environment seems very conducive to innovation. Also seems like they take care of their employees pretty well. I'd be very interested to hear about what other companies you are referring to. Thanks for the info on Reston. Is the DC office the same type of thing? Just asking because those are the only two offices within commuting distance of where I live now, and I am just wondering if I am looking at possible relocation if I want to pursue internships or a position there, but I'm really getting ahead of myself. Thanks for your answers on everything.
|
# ? Jun 14, 2013 14:54 |
|
Literally almost puked from stress on the way to work, gave notice; they're sad to see me go but will cut me loose today as soon as I'm done with the current stage of the project I'm on I stress too drat much. Risible posted:I went to interview with Amazon the other week with zero expectation of receiving an offer. I currently have a job, but I thought I would do it to test myself and get experience interviewing under stress--why not, right? Does Amazon care if you have a degree, or just if you have enough experience and interview well? I might want to give that a shot in 18 months, since I'm looking to get to Seattle as soon as I can do so without setting myself back financially.
|
# ? Jun 14, 2013 14:58 |
|
From what I've heard, they don't care. But I imagine it varies from manager to manager.
|
# ? Jun 14, 2013 15:19 |
|
2banks1swap.avi posted:Does Amazon care if you have a degree, or just if you have enough experience and interview well? I might want to give that a shot in 18 months, since I'm looking to get to Seattle as soon as I can do so without setting myself back financially. A CS degree will help you get to the in person interview stage, I think. If you make it to that part of the process then it's all about how well you can interview and demonstrate what you know.
|
# ? Jun 14, 2013 15:39 |
|
Risible posted:A CS degree will help you get to the in person interview stage, I think. If you make it to that part of the process then it's all about how well you can interview and demonstrate what you know.
|
# ? Jun 14, 2013 17:42 |
|
astr0man posted:Didn't get this job. Basically they claimed I lacked experience in this one very nitpicky technical discipline that normally they would train me up on, so if I was willing to relocate they would hire me but they don't want to hire me as 100% remote. Even though in the interview when a question about this very thing came up I was able to ask one clarification question about something that I had never seen before and then was able to figure out and give an acceptable answer to the question. Sounds like you dodged a bullet by not getting hired by a company where you will be lied to and manipulated by your bosses. poo poo like that just destroys a job for me.
|
# ? Jun 14, 2013 17:57 |
|
I had an awesome, incredibly incredibly interesting interview last week with company X (and got an offer today) About an hour and a half of "lets make a garbage collector", starting off as a simple reference counter, going to a mark and sweep collector, then a generational mark & sweep collector. Sketching out top level design, the PODs, data-structures, algorithms we might use and pseudo code.
|
# ? Jun 14, 2013 23:26 |
|
I'm just curious, what kind of work would you be doing where they asked you that?
|
# ? Jun 15, 2013 00:40 |
|
Doghouse posted:I guess I've always really liked Google products (I use tons of them on a daily basis), so I thought it would be very interesting and rewarding to work for them. And from what I have read the environment seems very conducive to innovation. Also seems like they take care of their employees pretty well. As it turns out, treating your employees well means you attract and retain good talent! Fancy that. Silicon Valley is an entire mad grab for good talent, so a lot of companies here compete with each other on perks and such. Things like free food/lunch -- while not "standard" around here, it's becoming more and more commonplace. As for specific companies I'm referring to... well now I wished I hadn't spoken so quickly, because I actually don't know what it's like from the inside at most of the other companies. All I know are things like "my friend of a friend of a friend seems to hear that this is a great place to work" or "I know random people who left Google/Facebook/whatever and are now working here." But off the top of my head, there's always Google, Facebook, and Apple (if you're willing to put up with a few fanboy coworkers). Dropbox is supposed to be the new hot place that people are leaving to join, but I have my personal biases since I know too many people there. I know a bunch of people at Quora, Pinterest maybe, and box.net for some reason, and they sound like decent places too. There's always Microsoft, but I hear very mixed things about them. I think popular internet sites like Twitter, Yelp, etc. are supposed to be not bad, but I don't really know anything about them. Doghouse posted:Thanks for the info on Reston. Is the DC office the same type of thing? Just asking because those are the only two offices within commuting distance of where I live now, and I am just wondering if I am looking at possible relocation if I want to pursue internships or a position there, but I'm really getting ahead of myself. I don't know anything about the DC office, and I only knew stuff about Reston because I happened to have coworkers there. If you're looking for an internship (i.e., doesn't involve permanent decisions like relocation), just do yourself a favor and spend the summer in the Silicon Valley area. At least for Google and other companies headquartered here, it'll be a much more happening place than the Reston office. After all, internships are a great way to spend a summer somewhere different and possibly scope out where you'd like to be after college.
|
# ? Jun 15, 2013 00:46 |
|
|
# ? May 22, 2024 10:30 |
|
I was told on Tuesday that the company would be contacting the selected candidate by the end of the week. Well, it's the end of the week. Sigh... I don't want to start looking for jobs all over again. That was the only good opportunity I'd had in months, and I was looking forward to living in the new area.
|
# ? Jun 15, 2013 01:57 |