|
biochemist posted:I am so excited- A year ago I took my first job as a general Web Dev/SEO/PPC guy at a marketing shop, and I've busted my rear end to work on side projects to keep learning and to help pay the bills, and it has paid off! I am trying to think whether you got paid ridiculously low wages in the former, or did such a good job convincing the latter your worth that they gave you a lot more. Congrats either way! Always nice to get paid more.
|
# ? Nov 20, 2012 19:41 |
|
|
# ? Apr 25, 2024 05:22 |
|
I recently got into web dev in efforts to change my career from mechanical/biomedical engineering where it wasn't going anywhere. I feel pretty good about my coding, but reading this thread absolutely terrifies me. I've been programming in various languages for 12 years now but I haven't done CS education stuff since 2001. Also, every recruiter and employer and developer I talk to suggests different things to learn and study! Some suggest being platform agnostic, others say learn one language really ridiculously well. One person will say 'go full stack and learn more front end' while another will say TDD is a critical factor to finding a job. Since there is a wide variety of experienced people here, is this the same sort of thing every newbie programmer goes through? Should I spend time refamiliarizing myself with sorting algorithms and their speeds, and how pointers and Assembly works, or is the web development field different from object-oriented C?
|
# ? Nov 20, 2012 20:34 |
|
Lolwut? Practically nobody uses TDD.
|
# ? Nov 20, 2012 20:43 |
|
shrughes posted:Lolwut? Practically nobody uses TDD. TDD isn't pervasive, but it's certainly catching on, and knowing how to write good unit tests is a very useful skill. Saying "practically nobody uses TDD" is misleading, especially since different industries have different expectations. In the world of web development, yes, knowing how to do TDD is very useful. quote:Should I spend time refamiliarizing myself with sorting algorithms and their speeds, and how pointers and Assembly works, or is the web development field different from object-oriented C? The web development field is very different from C/C++ development, although how different depends on the platform. You're going to need to have at least one functional language (JavaScript) under your belt, that's for sure. New Yorp New Yorp fucked around with this message at 20:56 on Nov 20, 2012 |
# ? Nov 20, 2012 20:53 |
|
shrughes posted:Lolwut? Practically nobody uses TDD. Lots of people say they use TDD though. It's totally worth being able to know what that phrase is supposed to mean.
|
# ? Nov 20, 2012 20:54 |
|
Strong Sauce posted:I am trying to think whether you got paid ridiculously low wages in the former, or did such a good job convincing the latter your worth that they gave you a lot more. Congrats either way! Always nice to get paid more. Both! It definitely says a lot about the wages I was making before, but hopefully I won't have to do anything like that ever again. Thanks!
|
# ? Nov 20, 2012 20:59 |
|
Sutureself posted:I recently got into web dev in efforts to change my career from mechanical/biomedical engineering where it wasn't going anywhere. I feel pretty good about my coding, but reading this thread absolutely terrifies me. I've been programming in various languages for 12 years now but I haven't done CS education stuff since 2001. Also, every recruiter and employer and developer I talk to suggests different things to learn and study! Some suggest being platform agnostic, others say learn one language really ridiculously well. One person will say 'go full stack and learn more front end' while another will say TDD is a critical factor to finding a job. You are going to get a huge variety of opinions here too. Personally, I would say learn Javascript/jQuery, HTML, CSS, some basic design, and your back end language (PHP, Ruby, Python, .NET). As you do those pieces you will also pick up some SQL skills, learn an ORM, and start doing some unit testing once you get going. Depending on where you apply to knowing sorting algorithm/speed could be important but I would only get a passing knowledge of it (read the Wikipedia article). Some good topics are Big-O notation, basic sorts (bubble, quick, merge), and some data structures (list, queue, stack, tree, map/disctionary, graph). Unless you plan to apply to someplace you know likes to ask lots of CS questions (Amazon, Google) I would say they don't come into play for most developer positions. Also, I'd imagine most recruiters are using TDD to mean writing unit tests for code. Unless a recruiter proves otherwise they have no clue what is going on the development world and probably saw the buzz word in a presentation or pamplet.
|
# ? Nov 20, 2012 21:04 |
|
Thanks for the replies! To clarify, I think just about every time I've seen TDD mentioned refers only to unit testing.
|
# ? Nov 20, 2012 21:33 |
|
Sutureself posted:Thanks for the replies! To clarify, I think just about every time I've seen TDD mentioned refers only to unit testing. That's not what TDD is. TDD is letting the code evolve by writing a single failing test, then writing just enough code to make that single test pass. Once you're done, you refactor the code to be pretty. As long as all your tests still pass, your code still works the way you originally wrote it and life is good.
|
# ? Nov 20, 2012 21:37 |
|
Ithaqua posted:That's not what TDD is. TDD is letting the code evolve by writing a single failing test, then writing just enough code to make that single test pass. Once you're done, you refactor the code to be pretty. As long as all your tests still pass, your code still works the way you originally wrote it and life is good. Yeah, while knowing what TDD means specifically is good because it's a question that gets asked, you should really just focus on understanding different kinds of tests and when and why they are useful. Also, writing testable code should be a part of your thought process whenever you're coding.
|
# ? Nov 20, 2012 22:16 |
|
You can get most of the benefit of TDD by just writing down what your unit tests for some code will be, before writing the code.
|
# ? Nov 20, 2012 22:58 |
|
You may or may not do true hardcore TDD (though it's very much recommended), but being able to write unit tests which prove that your code works and keeps working, is a must have skill for anyone who writes code for a living. Even if you're a junior developer who's fresh out of college, with no experience and spending most of the time looking stuff up on Google, if you can write reliable code, then that's awesome and the employer can make use of you in actual projects. Tests force you to write your code better in order for it to be testable, serve as documentation for the usage of your code, and most importantly grant instant verification of the continuing correctness of the code while you refactor, improve and optimize it. The faster you can find the mistakes you make in the code, the easier and cheaper it is to fix them, so having unit tests which can instantly verify it is huge. Taking it to the next level, you'd write the tests before the actual code and pretty much end up with TDD. So, definitely learn the common testing framework(s) for your language of choice. It's not even difficult. The second most important are mocking framework(s). They are less intuitive, but you'll soon see how powerful the concept is. It's trickier to learn how to make your code testable, and how to write truly good tests, but that comes with experience.
|
# ? Nov 20, 2012 23:01 |
|
bartkusa posted:You can get most of the benefit of TDD by just writing down what your unit tests for some code will be, before writing the code. Also known as function definitions. pigdog posted:Tests force you to write your code better in order for it to be testable, serve as documentation for the usage of your code, and most importantly grant instant verification of the continuing correctness of the code while you refactor, improve and optimize it. On the other hand, if you know what you're loving up you can avoid it in the first place. If you don't know what you're loving up, tests will not help you because you won't know what to test for. I'm a big fan of having a different programmer write the tests than coded the function. Unit tests are an argument for extension and modification, not for initial development if they're being made by the same person writing the code. baquerd fucked around with this message at 23:28 on Nov 20, 2012 |
# ? Nov 20, 2012 23:25 |
|
baquerd posted:On the other hand, if you know what you're loving up you can avoid it in the first place. If you don't know what you're loving up, tests will not help you because you won't know what to test for. I'm a big fan of having a different programmer write the tests than coded the function. Tests are still good to have around during research and development because as you find what you've been looking for you can add it to your test set. Some tests are better than no tests for the next guy who has to deal with your (lovely) code, so there's no better time to be writing tests than right now.
|
# ? Nov 20, 2012 23:48 |
|
FamDav posted:Some tests are better than no tests for the next guy who has to deal with your (lovely) code, so there's no better time to be writing tests than right now. Absolutely. My argument is that if you are simply testing your own code based on your preconceptions (conscious or subconscious), you will very rarely be surprised by test failures, and more often surprised by unanticipated conditions.
|
# ? Nov 21, 2012 00:33 |
|
baquerd posted:Absolutely. My argument is that if you are simply testing your own code based on your preconceptions (conscious or subconscious), you will very rarely be surprised by test failures, and more often surprised by unanticipated conditions. That's where tools like Pex (in the .NET world) really shine.
|
# ? Nov 21, 2012 02:51 |
|
baquerd posted:On the other hand, if you know what you're loving up you can avoid it in the first place. If you don't know what you're loving up, tests will not help you because you won't know what to test for. I'm a big fan of having a different programmer write the tests than coded the function. Tests aren't simply for confirmation of oneself's awesome coding skills, and for reaffirming assumptions you already have. Asking "how do I test this" during or before development forces the developer to really verbalize to himself what the code is supposed to accomplish in the first place, how would he know it does it correctly, and since he needs to get it to work in a test harness, how to keep the unit of code decoupled from the rest of the context and thus coincidentally use decent coding practices because of it. In test driven development the tests really drive the development with surprisingly beneficial results, rather than simply offer supplemental confirmation. quote:Also known as function definitions. code:
pigdog fucked around with this message at 09:21 on Nov 21, 2012 |
# ? Nov 21, 2012 09:03 |
So I made the mistake of taking a low paying job straight after graduation because I was broke and needed to pay bills. Six months later I am beginning to regret my decision. Some short comings of the job include no peer code reviews, no version control (git or svn), no QA testing, other programmers aren't concerned with sql injections, and I reiterate the vastly underpaid part. Will I have issues getting interviews/hired at a new place since I am planning on leaving my first real job in ~6 months? I feel like my reasons for leaving are pretty reasonable, but I am also new to the job market.
|
|
# ? Nov 21, 2012 17:04 |
|
Don Mega posted:So I made the mistake of taking a low paying job straight after graduation because I was broke and needed to pay bills. Six months later I am beginning to regret my decision. Some short comings of the job include no peer code reviews, no version control (git or svn), no QA testing, other programmers aren't concerned with sql injections, and I reiterate the vastly underpaid part. Sounds like me I'm sure interviewers will grill you as to why you're leaving so soon, but it shouldn't effect your evaluation. I just took this job in October where I'm underpaid (though I should be getting close to a 30% raise in January ) and there's a pretty low level of skill among my coworkers, no code review, and minimal testing. I've interviewed over the phone with other companies and I've clearly expressed my disdains with the company: -No "team" projects, every new client is the sole responsibility of a single developer. It's cool because I get to do things *my* way, but this sucks as a newbie because no one watches what I do to teach me how to improve -No employee reviews They seem to be pretty receptive towards that, honestly. It shows I want to work in a team or that I can work by myself if I have to, and that I care about my performance. Sab669 fucked around with this message at 17:17 on Nov 21, 2012 |
# ? Nov 21, 2012 17:11 |
|
Don Mega posted:no version control Say this to the interviewer when they ask why you want to leave your current job. After they stop making a horrified face, they will continue with your interview and fully support your decision to leave. If they don't see the problem, you don't want to work there. At least you've found a good list of questions to ask during the "do you have any questions for us?" phase of interviewing! [edit] Just be careful about being negative about your current employer. Don't say they're terrible, but explain that you realized you're not a fit for their culture because you want to do <insert list of best practices> and they don't. The interviewer will read between the lines. New Yorp New Yorp fucked around with this message at 17:18 on Nov 21, 2012 |
# ? Nov 21, 2012 17:15 |
Thank you both for the advice. I like the phrasing for the reasons I am leaving my current employer while avoiding bashing them. Now comes the fun part of actually getting interviews and taking off work for "doctor/dentist" appointments. I did not think I would have to go through this process again so shortly, but unfortunately here I am. Some advice for others, don't take the first job offered to you if you have any doubts. Don Mega fucked around with this message at 18:12 on Nov 21, 2012 |
|
# ? Nov 21, 2012 18:04 |
|
Don Mega posted:Now comes the fun part of actually getting interviews and taking off work for "doctor/dentist" appointments. That's the shittiest part of the job hunt. Are you on the east coast and willing to relocate? Can always do phone interviews with west coast companies after you get out of work
|
# ? Nov 21, 2012 18:07 |
|
Ithaqua posted:Say this to the interviewer when they ask why you want to leave your current job. After they stop making a horrified face, they will continue with your interview and fully support your decision to leave. If they don't see the problem, you don't want to work there. At my current place the first solution to version control was "just make sure you have all your copies closed in the editor because I just saved some files over SFTP ". After a few months of having git up and running, the moment that we shift our focus to a different project, the CTO says "Oh, so git's dead then? " and immediately goes back to his old ways... though I guess it wasn't as bad as him basically using git as a slower SFTP option in the first place. 20 commits for one change, because really, who has a local server set up for this poo poo? Even if you have to do it locally, start up version control on your poo poo. I just ran into a case last week where I needed to re-implement some functionality that we gutted (because the client actually wanted it, of course ) and git made it beyond simple to go back and dig the code we deleted out. (As for why it was deleted and not commented out: I did not make the change.) Don Mega posted:Now comes the fun part of actually getting interviews and taking off work for "doctor/dentist" appointments. Mix up your excuses a little. Car needs work. Family assistance. Someone needs help moving. It doesn't matter in the end, but why not add some variety?
|
# ? Nov 21, 2012 18:14 |
|
Zamujasa posted:(As for why it was deleted and not commented out: I did not make the change.) You shouldn't comment out code for posterity. That's exactly what source control is for. If it's dead code, remove it.
|
# ? Nov 21, 2012 18:44 |
Ithaqua posted:You shouldn't comment out code for posterity. That's exactly what source control is for. If it's dead code, remove it. This is normally the case but it sounds like they *have* to comment out unused code because they aren't actually using version control.
|
|
# ? Nov 21, 2012 18:46 |
So I am looking at an upcoming interview as a BIOS Software Engineer, I have been interning for almost a year now with a different company doing embedded systems work (schematics, PCB routing, writing software in C) and I am familiar with assembly language (MIPS, ARM). But I admittedly do not know a whole lot about BIOS, or what the job might entail. They say x86 programming is a plus, but I guess I'm not sure kind of questions I might be asked. Anyone apply of for a similar position? I assume they wouldn't delve into any high level algorithm or data structures stuff. They where interested in me for this position because of my background writing I2C and SPI drivers for microcrontollers.
|
|
# ? Nov 21, 2012 21:36 |
|
e; Well this isn't the thread I thought it was at all.
|
# ? Nov 21, 2012 22:25 |
I just found out my boss who has worked at my company for 7 years and is the oldest employee besides the owner only makes $21/hr. Get me outta here.
Don Mega fucked around with this message at 01:24 on Nov 22, 2012 |
|
# ? Nov 22, 2012 00:53 |
|
A MIRACLE posted:This is normally the case but it sounds like they *have* to comment out unused code because they aren't actually using version control. Run away..........
|
# ? Nov 22, 2012 01:06 |
|
Does anyone have any tips or resources for tailoring a resume and cover letter for applying for internships? I'm not the greatest student (I'm in my 3rd year of a 4 year CS degree with a 2.9 GPA that will take me at least 4.5 years to complete at this point) and I want to make myself as appealing as possible.
|
# ? Nov 26, 2012 17:47 |
|
So I found a programming puzzle for a company that I'm applying to and they want the solution emailed to them. Would it look good if I spent time in the email explaining the algorithm more verbosely than I was able to in the comments of the code? I mean, I explain what the code does, but not why I've made these decisions nor specified how they make the function more efficient. Also, I'll be including my github account which I should be creating today, since I didn't put one on my application. It's asked for on the application and is mentioned on the submission portion of the puzzle. At present I don't have any code showing off their preferred language, PHP, but hope to get some samples up in a couple of days as I try to teach myself it using Euler problems (as I did previously with C#). Would it be worth advertising that I will have PHP samples up in a couple of days? Or should I just let them only see my C#/C++/Java examples? def snow leppard posted:Does anyone have any tips or resources for tailoring a resume and cover letter for applying for internships? I'm not the greatest student (I'm in my 3rd year of a 4 year CS degree with a 2.9 GPA that will take me at least 4.5 years to complete at this point) and I want to make myself as appealing as possible. All I've got is the basic generic advice, take the time to learn about each and every company you're applying to, especially the smaller ones. You're a Junior, you should be able to digest their outward face and current projects in half an hour for a smaller company. Remember that this is an internship, not a job, focus on things you're interested in, would like to learn, and would like to do after college. Say things like "I've loved [FAVORITE COURSE/CONCEPTS] and would like to see how it applies in the real word" (except you should write gooder than that). Do you have any standout classes? Push that in your cover letter, too. As for getting it looking pretty, your school should have a career development office or something. They usually also handle internships too. If you're school is of a decent size, they should be hosting a job/internship fair each year (if not each semester). You might be pretty goony, but just going out there improves your chances a lot. gently caress, I don't think you need to go back even two pages here to hear about people with pretty crap grades getting good jobs and internships just through making a good showing at a job fair or meet'n'greet. And, lastly, who o you have in your corner in your CS department? Have you talked to them recently? If you haven't, DO IT! And not just a "I don't know how to format my CV." Actually talk to them about internships and poo poo, build up a rapport and maybe they'll remember a posting a friend sent them.
|
# ? Nov 28, 2012 21:20 |
|
def snow leppard posted:Does anyone have any tips or resources for tailoring a resume and cover letter for applying for internships? I'm not the greatest student (I'm in my 3rd year of a 4 year CS degree with a 2.9 GPA that will take me at least 4.5 years to complete at this point) and I want to make myself as appealing as possible. Do you have any projects/experience? BirdOfPlay posted:So I found a programming puzzle for a company that I'm applying to and they want the solution emailed to them. Would it look good if I spent time in the email explaining the algorithm more verbosely than I was able to in the comments of the code? I mean, I explain what the code does, but not why I've made these decisions nor specified how they make the function more efficient. Give a brief description in the email and don't over comment your project. (e.g. don't write, "STARTING LOOP!") If you already have projects in C# then put those up.
|
# ? Nov 28, 2012 22:55 |
|
I'm entering my last year as a CS Masters student after doing Information Systems as an undergrad (which ended up being okay because I made enough over 18 months to pay for my MS and living cost). My GPA is over 3.6 at an okay (fairly small, okay) school, but my big problem is finding projects to work on outside of school while finishing up my classes. Aside from a fairly cool idea I had for a web programming class that I'm working on, I don't know where to find things to work on. Where did you guys come up with things? Your own ideas, school assignments, books, elsewhere?
|
# ? Nov 29, 2012 01:21 |
|
Good Will Hrunting posted:I'm entering my last year as a CS Masters student after doing Information Systems as an undergrad (which ended up being okay because I made enough over 18 months to pay for my MS and living cost). Just make something that you're interested in, because that's the only way you'll stick at it anyway. Bonus points if it's something actually useful to you yourself (or anyone else), but don't worry about that too much. I like video games, so I programmed a few little games. I also like audiovisual stuff, so I programmed some music visualiser kind of things. Take your favourite non-programming hobby and make something related.
|
# ? Nov 29, 2012 02:00 |
|
Here's some advice that I learned the hard way this morning: have a plan for answering technical questions, in the same way that you (should) have a plan for answering hr-style 'have you had a situation where...' questions. For example they asked 'what does a hashmap do' (which is about as easy a technical question as it gets) and because I was nervous/didn't have a plan, I got all jumbled up and started with the way the hashing function maps a large key-space to a smaller space which is used as an index and then I got into collisions and how they related to buckets and then kind of waffled around and didn't actually answer the question. What I should have said is a) what you'd use it for b) what particular operations/situations it's good and bad at, and then finally c) how it works. Oh well.
|
# ? Nov 29, 2012 02:41 |
|
seiken posted:Take your favourite non-programming hobby and make something related. I love weather, so I'm attempting to write a weather simulator! Sounds fun, except when I decide that I want to be able to put real weather model data in and aggregate it
|
# ? Nov 29, 2012 02:45 |
|
def snow leppard posted:Does anyone have any tips or resources for tailoring a resume and cover letter for applying for internships? I'm not the greatest student (I'm in my 3rd year of a 4 year CS degree with a 2.9 GPA that will take me at least 4.5 years to complete at this point) and I want to make myself as appealing as possible. Leave your GPA off. Have something that makes me interested or impressed - ship a product (mobile app stores make this a lot easier), contribute to an open source project, have a web presence - website, blog, github. I've probably got 20 resumes from people in your school, with better GPAs, who all made the same drat pizza shop app or whatever. Convince me you're worth my time by being different from them. Also make your resume look cool. Interesting layouts, use of colors, etc. The first job I got, I only got the interview because the recruiter was impressed by the layout of my resume (thanks ResumeToInterview! support a goon, they're worth the 80 bucks or whatever).
|
# ? Nov 29, 2012 02:57 |
|
seiken posted:Just make something that you're interested in, because that's the only way you'll stick at it anyway. Bonus points if it's something actually useful to you yourself (or anyone else), but don't worry about that too much. I like video games, so I programmed a few little games. I also like audiovisual stuff, so I programmed some music visualiser kind of things. Take your favourite non-programming hobby and make something related. That's basically what I'm doing now and am also planning on (eventually) bringing it into a mobile app. I guess I just constantly worry that I'm so far behind the traditional CS undergrad who spent ~4ish years taking useful computer science courses. I took a lot of accelerated pre-req courses to start my M.S. program, and feel like I just didn't really get enough practice. I did really well and took a lot from Data Structures and Algorithms courses, but I guess I'd say I feel like I'm not as "sharp" as someone who's been doing this for a while and feel like I'll be at a disadvantage when I start applying for things.
|
# ? Nov 29, 2012 05:00 |
|
Good Will Hrunting posted:That's basically what I'm doing now and am also planning on (eventually) bringing it into a mobile app. Don't worry, even useful CS courses generally don't really prepare you for real world software development. Maintainability, readability, and proper software architecture are arguably a lot more important in the Real World, and they don't teach that as part of CS. Your goal for your first job out of school is to convince employers that you're not an idiot, you're willing to learn how to do things properly, and that you're able to work as part of a team.
|
# ? Nov 29, 2012 05:15 |
|
|
# ? Apr 25, 2024 05:22 |
|
To add to that, the majority of the people with better looking resumes than you are poo poo programmers. There are more programming jobs than there are good programmers. If you can convince people that you are one of the good programmers (actually being good can be somewhat helpful there), you'll be fine even if you are at a disadvantage to other people who can convince employers that they are good programmers.
|
# ? Nov 29, 2012 17:39 |