|
Ithaqua posted:
Pretty decent questions overall but these two stick out as being excessively MS stack/terminology centric; I guess if the role is for for WPF/WFC/ASP.NET development then this kind of stuff is maybe reasonable, but is it really something people would generally care about outside of the MS web dev domain? Also a lot of the questions listed are pretty trivial (in the sense of being general knowledge) compared to the types of applied problems where a good knowledge of algorithms and data structures is required, for how they work and how to use them & when it is actually appropriate to use something over something else. Edit: On C, it's always worth learning C. Ideally every developer should know C (but I've had to interview people who don't know it and have made them offers but I've always considered it a bit weird). Luckily when you get over it being a bit weird it's actually quite a pretty language. C++... meh; the language is fine I guess but people who self-identify as "C++ programmers" always tend to be horribly crippled. As a disclaimer my background is games, 3D visualisation, web development and "big data" cloud poo poo. return0 fucked around with this message at 23:44 on Jun 16, 2013 |
# ? Jun 16, 2013 23:39 |
|
|
# ? May 22, 2024 08:19 |
|
There are like a million MVC frameworks, it's not just .NET stuff. edit: RE: C: I would like to learn it someday. I'm just not sure it should be at the top of my list of things to learn. RICHUNCLEPENNYBAGS fucked around with this message at 23:54 on Jun 16, 2013 |
# ? Jun 16, 2013 23:46 |
|
RICHUNCLEPENNYBAGS posted:There are like a million MVC frameworks, it's not just .NET stuff. Yes, but being concerned with the finer points of the distinction between MVVM/MVC/MVP is a condition peculiar to MS stack types (in my experience, from shooting the poo poo with knockout folk, etc).
|
# ? Jun 16, 2013 23:53 |
|
return0 posted:Pretty decent questions overall but these two stick out as being excessively MS stack/terminology centric; I guess if the role is for for WPF/WFC/ASP.NET development then this kind of stuff is maybe reasonable, but is it really something people would generally care about outside of the MS web dev domain? MVVM and MVC are both very commonly used patterns in UI design regardless of the technology stack. MVC shows up in pretty much any web framework, and other than modern Microsoft UIs (WPF, Silverlight, Windows Store), the JS world has Knockout for MVVM. And I would totally accept "separation of presentation from implementation" as an answer for both, although their definitely are some important distinctions between the two. I didn't include any "applied" problems because those are something that have to come from your experience, and you can't predict what sort of applied problems are going to be asked in an interview. I was giving tips to help getting past a phone screen. Also, for a junior developer, there's a lot more leniency on applied problems. As an interviewer, I know that a guy with a year or two of professional experience might not have the skill set and experience to design a really good solution. All I need from a junior is someone who has a decent "nuts and bolts" knowledge of the language. I want to be able to sit down with them, say "okay, the acceptance criteria on this PBI are x, y, and z. I'm envisioning <an outline of the design along with whiteboard drawings and so forth>. If you have any questions, ask!" And then I can rely on them to use the language properly to see that design through. Their work is still going to be scrutinized pretty closely, and I insist on code reviews any time I have the authority to do so. New Yorp New Yorp fucked around with this message at 00:03 on Jun 17, 2013 |
# ? Jun 16, 2013 23:56 |
|
return0 posted:Yes, but being concerned with the finer points of the distinction between MVVM/MVC/MVP is a condition peculiar to MS stack types (in my experience, from shooting the poo poo with knockout folk, etc). Yeah, understanding the difference between these types seems like pedantry to me; possibly to the point of uselessness. If you've ever tried to shoehorn a pattern into code that doesn't want to accept it, there's something wrong, and it seems fairly frequently that the big picture style patterns being too restrictive is the problem. That these distinctions even exist seems wrong to me - it's just sperging about classification of separation of concerns. Programming remains at its base a creative endeavor, and should stay that way.
|
# ? Jun 17, 2013 01:20 |
|
baquerd posted:Yeah, understanding the difference between these types seems like pedantry to me; possibly to the point of uselessness. If you've ever tried to shoehorn a pattern into code that doesn't want to accept it, there's something wrong, and it seems fairly frequently that the big picture style patterns being too restrictive is the problem. That these distinctions even exist seems wrong to me - it's just sperging about classification of separation of concerns. Programming remains at its base a creative endeavor, and should stay that way. It's not pedantry. MVVM/MVP and MVC solve the same problem, but they solve it differently for a very good reason. It can be summed up as: "MVC is for decoupling presentation logic and business logic in stateless UIs, MVVM/MVP are for decoupling presentation logic and business logic in stateful UIs".
|
# ? Jun 17, 2013 01:37 |
|
Ithaqua posted:It can be summed up as: Sorry, that's pedantry to me. It's an important distinction, but really, the problem domain itself will constrain the implementation. The really important matter is the separation of layers.
|
# ? Jun 17, 2013 01:54 |
|
I really feel lucky as poo poo I managed to get a good junior position from someone who was explicitly looking for a trainable junior programmer who didn't yet have too many bad habits to unlearn, in his own words, given the way this thread has turned. Also, to just add to the greek chorus of "learn good design patterns and have a senior dev to smack your head if you do dumb poo poo so you stop doing dumb poo poo," all I gotta say is learn good design patterns and have a senior dev to smack your head if you do dumb poo poo so you stop doing dumb poo poo. I'm so excited I get actual code reviews at the new place, for that matter. Now I won't feel like a total idiot if I want to put poo poo on github!
|
# ? Jun 17, 2013 02:06 |
|
2banks1swap.avi posted:I'm so excited I get actual code reviews at the new place, for that matter. Now I won't feel like a total idiot if I want to put poo poo on github! Code review has been one of my favorite things that my employer added since I started working here. I would definitely be more inclined to pick an employer that encourages or even demands peer review of all code.
|
# ? Jun 17, 2013 11:46 |
|
As opposed to what? Just letting anybody commit whatever?
|
# ? Jun 17, 2013 14:02 |
|
SurgicalOntologist posted:- I should finish the Ph.D., right? On the one hand, it's psychology, on the other hand, my specific program is all about understanding organisms as complex systems and frankly I think I could sell these skills as applicable to any domain. Most of the techniques I'm using (e.g. the paper I'm submitting to PRE) come from the financial domain, for example. This post is a bit stale but didn't get any responses. I'm a PhD student in human-computer interaction with one foot out the door, taking a full time researcher position with a company in August, so I've gone through some of these struggles. Finishing: Right now I'm gong to try and finish while working but my resolve lessens every day. You will need to keep that in mind: all the bullshit you put up with in academia (lack of funding, review boards, catering to faculty whims) doesn't exist in industry, making it hard sometimes to go back and deal with it. Based on my internship that led to my full time offer and talking to lots of people who went from grad school to industry, finishing the PhD won't have much effect in industry. People might think it's cool but it won't lead to much besides maybe a slight pay bump. How I see it, the only reason to finish the PhD is if you have an interest in possibly returning to academia at some point and getting a tenure track position. Jobs: With your research background and R knowledge you are extremely qualified for data science positions, which are everywhere now. You say you really want to do programming, so you could look for maybe a data science position at a small company or a new team at a larger one where you could code internal tools, etc. Quantitative-focused UX research positions are also a possibility but there would likely be less opportunity for programming there. In the meantime: Just keep programming. Learn new stuff. Work on your pet projects. Pick one and see it through till you have something polished that you can put up on GitHub to help with future interviews. Thesis: Sounds like a good plan. Don't overcomplicate it, make it simple so you can get the hell out (my current plan). Unless again you may want to go back to academia one day where people actually give a crap about your research and then you may want to think about doing something that could be well received. Our disciplines are different so YMMV obviously but after 4 years in a PhD program and 3 months in industry I am a way bigger fan of industry.
|
# ? Jun 17, 2013 15:35 |
|
Thank you. That made me feel a lot better. I'll finish my program to keep my options open- if the perfect tenure track job opens I'd probably take it- but if (/when) it doesn't I'll be more than happy to get out of academia. Thanks for the advice. Did you mention R specifically because it's more prevalent?
|
# ? Jun 17, 2013 17:31 |
|
Stoph posted:Code review has been one of my favorite things that my employer added since I started working here. I would definitely be more inclined to pick an employer that encourages or even demands peer review of all code. I really, really, really hate performing code reviews. Nonetheless, I absolutely would not want to work somewhere that releases code to customers without performing them.
|
# ? Jun 17, 2013 19:30 |
|
qntm posted:As opposed to what? Just letting anybody commit whatever? Haha, you think I had source control at that last job? My final act is to just copy poo poo to a shared FTP folder. I was there for months and nobody ever told me what I needed to hook in to their SVN. The most experienced dev there (who did this as a side job) said "I dunno!" over the phone, even. Every other dev was many states away from the office. Is "do it all through 1099s remotely on the side" a "thing" in terms of a business strategy? If this is the future of software I expect things to suck until it passes. gucci void main's thing about how nobody does junior devs much at all anymore has me more than a little worried. I'm thankful as hell I got a job where a requirement was that I learn how to code well structured code with reviews with other people in my area. This way I'll actually have a clue how to do agile dev with source control and with a good design pattern when I do get to greener pastures. I really wish more programming programs actually had a source control to turn in assignments and included actual instruction time on how to structure things right and refactor things. I feel really sorry for my classmates who don't even realize what a big deal that's going to be when they get out into industry.
|
# ? Jun 17, 2013 20:51 |
|
I really think they're overstating things a big. We hire hundreds of devs fresh out of college, as do plenty of other companies.
|
# ? Jun 17, 2013 21:22 |
|
But how many other entities hire hundreds? And for that matter, how many devs have my experience as a first job, where there's a huge culture of laziness and "hack it and get it over with?"
|
# ? Jun 17, 2013 21:35 |
|
2banks1swap.avi posted:Is "do it all through 1099s remotely on the side" a "thing" in terms of a business strategy? If this is the future of software I expect things to suck until it passes. No, you just happened to work at a really lovely company. 2banks1swap.avi posted:But how many other entities hire hundreds? Any large company hires a lot of devs out of college. You happened to have a terrible experience but again, that was a result of working for a lovely company. You probably know this by now, but in the future, you should ask things like "do you use source control" in your interviews, so you don't end up working somewhere where their idea of source control is just uploading poo poo to an FTP server.
|
# ? Jun 17, 2013 21:46 |
|
I think there's plenty of junior dev positions. That doesn't necessarily mean it's easy to get one at a good place, since said places would usually prefer to hire no one than to hire someone who's only halfway competent.2banks1swap.avi posted:But how many other entities hire hundreds?
|
# ? Jun 17, 2013 21:47 |
|
Oh, believe me, I grilled the poo poo out of $NEWJOBHIRINGMANAGER about that, and mentoring, for that matter. Another good sign is he asked for a code sample before I even met him. Learning how to get a good job is almost as important as how to DO a good job, IMO.
|
# ? Jun 17, 2013 21:48 |
|
2banks1swap.avi posted:Another good sign is he asked for a code sample before I even met him. I got one of those after my latest phone interview, and I got asked to an in person interview so I took that as a good sign. Now I'm just waiting and waiting to hear back .
|
# ? Jun 17, 2013 22:50 |
|
qntm posted:As opposed to what? Just letting anybody commit whatever? It's pretty much the top of the list of reasons I'm not extending my current contract
|
# ? Jun 18, 2013 00:37 |
|
SurgicalOntologist posted:Thank you. That made me feel a lot better. I'll finish my program to keep my options open- if the perfect tenure track job opens I'd probably take it- but if (/when) it doesn't I'll be more than happy to get out of academia. Thanks for the advice. I mentioned R because you mentioned R, but yeah it is pretty widely used. I haven't been around long enough to say this definitively, but it seems most places either use R or don't care what you use and some people use R. I highly doubt you're going to run into situations where you find an 'SPSS shop' where they'll force you to use a specific statistical package.
|
# ? Jun 18, 2013 14:36 |
|
2banks1swap.avi posted:I really wish more programming programs actually had a source control to turn in assignments and included actual instruction time on how to structure things right and refactor things. I feel really sorry for my classmates who don't even realize what a big deal that's going to be when they get out into industry. I don't know how to use source control. I can use TFS, I think it's called, Microsoft's source control server for Visual Studio, but that's it. I never figured out how to use subversion or github. I have no idea why my school didn't teach it, it wasn't a very good school for CS.
|
# ? Jun 19, 2013 06:31 |
|
Zhentar posted:I really, really, really hate performing code reviews. Nonetheless, I absolutely would not want to work somewhere that releases code to customers without performing them. It's sort of annoying occasionally, but as long as there's a good workflow, I find it really useful. If he's inexperienced about this area of the code, you can teach him, and if you're inexperienced, you can learn pretty quickly. It's not just about "good code" in the end, and finding petty formatting poo poo, but I think that over time it increases the bus number a lot. It's also a fun way to vent if somebody pisses you off, you can always find petty stuff to keep them and their code in limbo forever.
|
# ? Jun 19, 2013 06:41 |
|
Zero The Hero posted:I don't know how to use source control. I can use TFS, I think it's called, Microsoft's source control server for Visual Studio, but that's it. I never figured out how to use subversion or github. I have no idea why my school didn't teach it, it wasn't a very good school for CS. It doesn't really belong in an academic context, and I don't think very many schools make it a part of a CS program. It would be having a class for art students on how to put paintings in frames. Plus it doesn't really take all that long to learn, and different organizations do version control differently anyway, so nobody is really going to expect you to know their special snowflake source control/code review/release process anyway. Now there are some people that are just convinced that they don't need code reviews or version control, and you probably don't want to hire those people, but that's a different matter.
|
# ? Jun 19, 2013 07:40 |
|
Zero The Hero posted:I don't know how to use source control. I can use TFS, I think it's called, Microsoft's source control server for Visual Studio, but that's it. I never figured out how to use subversion or github. I have no idea why my school didn't teach it, it wasn't a very good school for CS.
|
# ? Jun 19, 2013 15:24 |
|
Cicero posted:Learn git now. It's kind of painful at first but it's a skill you want to have. Go get a github account and git to codin'! Although if you work in any sort of Microsoft shop, knowing TFS too isn't a bad thing. And Git+TFS is catching on, where folks use the build and project planning capabilities of TFS in conjunction with Git for source control.
|
# ? Jun 19, 2013 15:28 |
|
This book is more of an large product pitch for Veracity (which isn't exactly a huge player in the VCS market), but it has some very simple introductory steps/examples in how distributed version control systems (git, mercurial) work compared to subversion. Free to check out, worth a look. http://www.ericsink.com/vcbe/
|
# ? Jun 19, 2013 16:56 |
|
evensevenone posted:It doesn't really belong in an academic context, and I don't think very many schools make it a part of a CS program. I think it could fit well as part of a lab that's running in parallel to the first or second programming course. Like you said it doesn't matter what tools they use since it will be different in every organization, but learning the concepts and making them habits are important.
|
# ? Jun 19, 2013 19:35 |
|
I certainly can't speak for everyone, but at my college the basic software engineering course had a lecture or two on configuration management from more of a theoretical view, which I could definitely see as not being all that helpful for getting students up and running with git. I taught myself the basics using SourceTree, actually.
|
# ? Jun 19, 2013 20:00 |
|
It seems like version control would be something you'd want to bring up as a sidebar topic at the first course where you're doing bigger amounts of group programming work, if not earlier. At least in my CS program you're on your own for the first year or two and then every course beyond that involves large involved projects with 3-4 people. What I wouldn't give to have had Git and Github or Bitbucket back when I was in school, even if it wasn't "taught." My monster OO-design class would have been so much less frustrating than us fighting with CVS and having to move files into one guy's school unix account to commit them, since we didn't have anywhere to stand up an actual CVS server.
|
# ? Jun 19, 2013 20:31 |
|
evensevenone posted:It doesn't really belong in an academic context, If your CS program isn't doing complex enough projects to warrant source control it probably sucks.
|
# ? Jun 19, 2013 21:33 |
|
JawnV6 posted:If your CS program isn't doing complex enough projects to warrant source control it probably sucks. But VCS has nothing to do with CS? Also, surely these days students enrolling in a CS degree would already be using source control...
|
# ? Jun 19, 2013 22:04 |
|
return0 posted:But VCS has nothing to do with CS? Also, surely these days students enrolling in a CS degree would already be using source control... Well they'd have to know about it first, and certainly in Britain you can do Computer Science at uni without ever having done any programming in an academic environment prior to that, so that leaves what you pick up on your own, which is going to be all over the shop.
|
# ? Jun 19, 2013 22:12 |
|
Milotic posted:Well they'd have to know about it first, and certainly in Britain you can do Computer Science at uni without ever having done any programming in an academic environment prior to that, so that leaves what you pick up on your own, which is going to be all over the shop. Yeah, I began a CS degree in the UK in 2002, and if I recall correctly, people were using stuff like CVS and possibly the free version of Perforce (heh). There were no classes on it or anything. I think some TA's verbally suggested what they used in a tutorial, sort of like they might present a preference on vi/emacs I suppose, which seems like a decent compromise. When interviewing someone it's pretty... surprising if they point blank have no idea what VCS is or does, even as a graduate, and even though I don't really expect them to be taught it at school. All software people follow HN and skim it occasionally, and know about things like git right?
|
# ? Jun 19, 2013 22:40 |
|
The current lot of freshers (and the year before) at my uni (imperial college) are taught git from the beginning of their degree.
|
# ? Jun 19, 2013 22:42 |
|
return0 posted:But VCS has nothing to do with CS? Also, surely these days students enrolling in a CS degree would already be using source control... That's an unnecessary assumption. While source control systems shouldn't (necessarily?) be a course unto itself, it should be a discipline that is encouraged if not enforced within a CS program.
|
# ? Jun 19, 2013 22:43 |
|
Cicero posted:Learn git now. It's kind of painful at first but it's a skill you want to have. Go get a github account and git to codin'! I've made an account before, but I never figured out how to do anything but use vim. I never really gave it a good try, though, because everything I've done recently has been something I couldn't really use github for, at least as far as I know, stuff like Android or ASP.NET that essentially requires an IDE. On that note, what kind of projects could I pick up that would help me get a job? What would an employer like to see? And as for whether source control should be part of a college degree or not, I see no reason why it shouldn't. My professors would modify our grade based on how nice our code looked, formatting issues that had absolutely nothing to do with computer science itself, the efficiency or functionality of the program. But it was incredibly important to programming as a vocation. I think source control is important for the same reasons, and in fact, is really part of the same idea.
|
# ? Jun 20, 2013 03:14 |
|
Using git has nothing to do with IDE's? Whatever IDE you are using probably has a git plugin.
|
# ? Jun 20, 2013 03:24 |
|
|
# ? May 22, 2024 08:19 |
|
Source control should be a part of intro programming courses. Yeah, okay, CS is about theory, but most programs have an introductory programming class for people who have never programmed in their lives. Introduce version control there.
|
# ? Jun 20, 2013 03:34 |