Ask Slashdot: Job Search Or More Education?
Matt Steelblade writes "I've been in love with computers since my early teens. I took out books from the library and just started messing around until I had learned QBasic, then Visual Basic 5, and how to take apart a computer. Fast forward 10 years. I'm a very recent college graduate with a BA in philosophy (because of seminary, which I recently left). I want to get into IT work, but am not sure where to start. I have about four years experience working at a grade/high school (about 350 computers) in which I did a lot of desktop maintenance and some work on their AD and website. At college (Loyola University Chicago) I tried to get my hands on whatever computer courses I could. I ended up taking a python course, a C# course, and data structures (with python). I received either perfect scores or higher in these courses. I feel comfortable in what I know about computers, and know all too well what I don't. I think my greatest strength is in troubleshooting. With that being said, do I need more schooling? If so, should I try for an associate degree (I have easy access to a Gateway technical college) or should I go for an undergraduate degree (I think my best bet there would be UW-Madison)? If not, should I try to get certified with CompTIA, or someone else? Or, would the best bet be to try to find a job or an internship?"
You should work on finding a job first. Academia tends to be very different then the work environment. A lot of companies also offer money for further training and certifications so you can always build up on that.
I received either perfect scores or higher in these courses.
With your name, have you considered becoming a crime-fighter, or super-hero?
Get a job, and make them pay for more education / training / certifications. It's tax-deductible if it's relevant to your job.
It'll also help you maintain your sanity a bit, since the work and projects you do and how you approach things are very different between work and school. You'll also end up less frustrated with the work projects that you don't have complete control over, and more motivated with the school projects that would probably be pointless if you were just doing them for a grade.
And don't worry too much about the BA in Philosophy bit... a lot of the good IT folks I know have bachelor's degrees in English or other stuff. And they're great, because they can communicate with people a bit better sometimes. Certs and perhaps an MS degree in your field will help you later secure more pay and promotion opportunities with the HR of larger companies, though. But to get in the door, you just need demonstrable skills and experience, which sounds like you're on track for.
I "only" have an AA degree, and it automatically eliminates me from most positions.
It doesn't matter that I have over 20 years of professional experience, that I've developed everything from embedded systems used in commercial and general aviation, to a major Point-of-Sale system, a hotel reservation system, two financial trading systems and numerous business and accounting systems.
Most H/R departments and recruiting companies won't even talk to me, because I don't have a Bachelor's degree, even though they would talk to me if I had a BA in basket-weaving.
Fast forward 10 years. I'm a very recent college graduate with a BA in philosophy...
I stopped reading right there. As a philosophy graduate, I'm sure you will appreciate a little Kafka:
Give it up!
It was very early in the morning, the streets clean and deserted, I was walking to the station. As I compared the tower clock with my watch I realized that it was already much later than I had thought, I had to hurry, the shock of this discovery made me unsure of the way, I did not yet know my way very well in this town; luckily, a policeman was nearby, I ran up to him and breathlessly asked him the way. He smiled and said: “From me you want to know the way?”“Yes,” I said, “since I cannot find it myself.”“Give it up! Give it up,” he said, and turned away with a sudden jerk, like people who want to be alone with their laughter.
It depends on what track you want to get into IT on. If you want to start in programming then yes, you most likely need more schooling. With the glut of applications most companies are seeing these days you will have trouble even getting an interview without a BS in EE/CS or something similar. That said it sounds like you are comfortable with the hardware end of things, and if you would like to pursue that track the degree requirements tend not to be as stringent. Most of the network engineers/ops positions at my company are people with certifications, be they CompTIA, Cisco, M$, etc. They aren't any less skilled at their positions, but the networking world tends to place more value on results than degrees, in my experience. So assuming you want to stay on this track I would suggest starting with certs. You can always work your way sideways into a dev position if that's what you want to do, but that's the easiest way to get your foot in the door AFAIK.
"IT work" is quite vaque. It covers running a supercomputer cluster to maintaining systems for small businesses. What would you like to be doing in the IT field?
C or C++
How many years of C or C++ do you have?
What projects have you completed?
If you want to do website development thats different.
But real computer programming tends to use C or C++ or obj C
I haven't hired a C/C++ programmer for nearly 10 years, and have managed some large business application development projects (one project is deployed to around 800 locations with about 20,000 users). What is your definition of "real" programming?
Stay the course.
The world needs fewer Code Monkeys and more Standup Philosophers.
Soon you could become an Able Bodied Seminarian.
And then...
Woof!
I'd go the certification path. Going to university or college for IT isn't a terrible idea, but in my experience it's not necessary and probably a waste of money. I've had many co-workers that come out of university and college programs that don't know anything, or worse, memorized how to do something in one particular controlled environment and think they know everything.
IT is about experience, confidence, and skill. If you already think you have good troubleshooting skills then you're well on your way. I'd get some core certifications like CompTIA A+, and CCENT and then look for an entry level job. Consulting companies that provide helpdesk support or managed services for small/medium businesses are a great start. From there you'll build contacts, start to specialize, they'll pay to get your more certs, and before you know it you'll be a lazy sysadmin on someones payroll.
If it ain't broke, don't fix it.
I'm assuming perfect is 100%. If you ace everything and do extra credit work your grade will be "higher than perfect."
If you feel comfortable with Python, come out to the Chicago Python Users Group meetings, hone your skills and network. There is a lot of Python work in Chicago these days.
"To those who are overly cautious, everything is impossible. "
"IT work" is roughly the same as "I like computers". If you go into an interview with "I want to do IT work" you'll end up grinding your years away on the help desk. You mention that you worked with multiple desktops and AD, did you enjoy it? Do you prefer working on end user machines, or would you prefer to control them at a higher level from central servers? Do you gravitate to systems architecture and building out data centers, or would you rather be programming? If programming, are there languages you hate? If you want useful advice, where you've been is just as important as where specifically do you WANT to go?
Then start peddling it. Then start working for the organizations that become dependent on it. Finding the application to write is the hard part.
Please do not read this sig. Thank you.
dying business. The core of IT is viruses, failing hardware and codemonkying (e.g. simple, lego style programming as opposed to the stuff that's basically just really hard math). Assuming you're not a math guy that just happens to have a Philosophy degree, you're looking at one of those 3 core things. Now let me explain why they're dead ends.
The bot nets got too big for their britches. Microsoft started tracking them (cheap) and sending the American DOJ (expensive, but free for Microsoft) out to get them. Virus removal work has been plummeting ever since. Hardware is about 50 to 70% longer lived than 10 years ago, due mostly to cooler running chips. As for codemonkying, good luck competing with cheap offshore labor.
There are still jobs, but they're few and far between, and many go to Visa applicants. Your wages will be low, your hours long and you'll be on call for the rest of your life.
IT as a profession is dead unless the gov't steps in for some protection. I thought of running a lobbying group (god knows Unions are dead), but there's too many "independent thinkers" and they're basically divided and conquered. For your own well being get the hell out of IT.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
at this point you are well trained to work in the repair section of best buy.
Don't be an ass. He'd do just fine in a QA role at dozens or maybe hundreds of places, if that is the sort of thing that would make him happy. If he prefers, he's probably do just fine in user support. My employer has open listings that he would qualify for - and that would be a full time job with a salary and full benefits. I'll leave it up to him to find that posting though...
I haven't hired a C/C++ programmer for nearly 10 years, and have managed some large business application development projects (one project is deployed to around 800 locations with about 20,000 users). What is your definition of "real" programming?
In OP's case, I bet "real programming" is anything that involves C or C++ programming. Holy circular definition, Batman.
PS: I don't reply to ACs.
get a degree. Programming jobs are heavily resume/GPA filtered. Unless you have someone on the inside ("who you know"), what you know will only get you so far. The great jobs, IMO, for a newbie, are best approached with a great GPA and transcript.
There is so much more to programming than just banging on a keyboard. Get a good discrete mathematical background, algorithms, data structures. Study the hardware level as well (don't sleep through Comp Arch like I did). For the best bang for your buck, dual degree CS with something else engineering related (mechanical, chemical, physics, etc). STEM is the big thing these days.
Do NOT bankrupt yourself or your future with crazy loans. Yes, "get a degree" and "don't bankrupt your future" are almost mutually exclusive these days. But even from a smaller college, a great GPA and transcript will get you in more doors.
I finished my first degree, and after some futzing around decided to do a masters. While I think I could have continued to get good jobs with my BA and hobbies (I too learnt QBasic, and then downloaded QuickBasic from the net, when I was young), the second degree will get me to where I want to go faster. That's the thing, I have a direction I want to go to (which I didn't have when I finished my first degree).
With a BA and computer skills you should be able to find a varied number of jobs, including in communications type situations (you can read and write, and you can do (or learn to do) web stuff? that's all you really need). My advice, get into the work force for a couple of years and see if you can cope with the sort of jobs you are getting. If you want something extra, go and do more study.
HELP MY ACCOUNT HAS BEEN HACKED BY AN ILLIBERAL ART STUDENT SET TO DESTROY THE INTERWEBZ!
A lot of big companies pay for job-relevant education. Join as entry-level, get your degree working in parallel, then switch to a job with higher requirements/better pay
Step 1: Teach yourself how to code. This can only help and there is plenty of resources. Kahnacademy, MIT's Opencourse ware, Python the hard way. The key to getting any IT job is the ability to develop the skills required.
Step 2: Work on the cheap and be humble. There's plenty of non IT shops in dire need of a little bit of HTML, a little bit of maintenance, a little bit of what have you. Offer to be paid in beer and you will not only develop real world skills, you will make connections.
Step 3: Specialize. A college degree in X and the ability to do the requisite skills should be able land you a junior role / internship. The work may not be glorious, but you will be able to get a job, get the experience, get the certs and grow professionally.
Step 4: Don't settle. Don't try to promote your way up through an organization until you have chosen your path. Do good work and pursue new opportunities. If you don't see an opening, move on. IT, more than most careers, values diverse experience and self-development
As an English major from Podunkvilles who works in SF, I can attest to this path. Your desire will get your skills, your skills at any level will be invaluable and you will be able to make a career out it.
Knowing C, IMO, is a litmus test for someone who knows how computers work. Pointers, memory, file I/O, etc, aren't directly useful in higher level languages these days. But knowing they exist would help someone write smarter code.
Also where do you want to work? Are you willing to move to California? Do you need to stay in the midwest or southeast? Are you willing to move to Mexico City?
Fast forward 10 years. I'm a very recent college graduate with a BA in philosophy (because of seminary, which I recently left).
Question – did you take advance courses in logic? Did you enjoy it? If you answered yes to both then I would suggest finding something that would mold those skills – something more theoretical and abstract. Technical and practical gigs will pay the bills today but tend to stagnate fast.
Formal / Symbolic logic can have the same level of rigorous thought patterns as upper level math courses – and are highly prized skills in IT. The 2 best programmers I knew both had philosophy degrees. (one double majored in Mathematics, the other fell short by a few credits in getting a triple in math/physics.)
Hacker School (sometimes called dev bootcamps) is the new Computer Science degree.
Here are links to some Hacker Schools:
http://natashatherobot.com/hacker-school-the-new-cs-degree/
In Chicago they have "Starter League" (http://www.starterleague.com/).
Hacker School is very economical and many graduates (for one school it was 88%)
get jobs.
Also, go to "Hackatons" and find some tech meetups (meetup.com) in your area.
Hackathons are marathon programming sessions.
Groups give a presentations at the end. You'll be able to network with
people working at many companies.
You'll find that not getting a degree will hold you back down the road even if you manage to find a low level job now. If you can afford it, go to school, transfer as many credits as you can toward a 4 year degree, with summer school, etc., you should be out in 2 years. You have no job experience, which works to your advantage when you graduate a 4 year program. Try to get an internship while in school. That may be better time spent than summer school. You would be in worse shape if you were laid off, then went back to school. I see these types of people struggling to get hired.
UW Madison is a good school (ok, I'll cine clean, I go there) although I'm not a cs student I can tell you that their programming courses are fun although the introductory ones with bore you half to death.
I don't care how many people come out of the woodworks to say "You don't need a degree to get a job in IT, cause look at me, I got one 20 years ago and am still working in IT and never had a degree". To them I would say the times have changed and almost every company out there either requires or strongly prefers a 4 year degree. Unless it's a start up (i.e. like a younger version of Facebook or Zynga or insert latest startup to go public and lose everyone a bunch of money here) in which case you either have to REALLY know what your doing or know someone in the company that is willing to tolerate your lack of experience and wants to teach you how they want things done.
If you already have college credit towards certain classes, just finish up your degree and you're opportunities will open up a lot more than just using the "cast the widest net and see what happens" approach. Other options that have been mentioned here are "write your own app and sell it" or "start your own start up". This works for such a small percentage of people and in many cases it isn't enough to make a living off of that to me, it's as likely as being an undiscovered musical talent in LA.
I graduated from UW-Oshkosh which is by far a much cheaper school than UW-Madison and came out of it with about $40K in debt. I had 0 experience in IT but had a 4 year degree and still managed to get a job that paid $17/hr as an intern which turned into a $50K/yr job. I've been working for 3 years here now, have had several raises and 1 promotion and am now down to $24K in debt. If you're ok with working a mundane corporate job to pay the bills and don't care about being the next Mark Zuckerberg then stick with school. On the other hand I can't argue the idea of following your dreams, if a corporate job makes you want to puke, I wouldn't bother with school, just be prepared to fight a long uphill battle to get recognized in the sea of talent that's out there.
I just recently received my masters (not in computer science) and I regret my decision to go to school, a bit. Sure I learned things but it is also 2 years away from the fast moving technology world. My experience and skills are ancient, relatively speaking, to those who have worked the last two years. Only go to school if you want to switch fields or if you cannot advance your career without a more advanced degree. Plus, the education may not be that great, considering professors (at large research universities) are there to do research and not teach; you could be getting shitty professors who do not care about providing good instructions and its not like you can get a refund. Try networking, go to career fairs, and whatever you can to get interviews before you give up and go to school. I suspect you will be able to find something before you need to go to school.
That's what I'm doing. It seems to teach you much more practical matters and how the real world works. My least favorite part of college is the idealistic (and incidentally, philosophical) arguments people have. I will however, also recommend you learn more along the way. Not to sound like an ass, but you do have some gaps in knowledge as you yourself pointed out. I'm seeing no mention of C, which is pretty huge, or Java (although you know C# which might even be better at this point). Also, as much as I hated this subject, some theory might be required in CS. Final verdict: get a job and if you don't love it, go back to school after you make some money. If you love it, ... game over, huh?
He said "I want to get into IT work" not "I want to be a professional developer." IT work is generally support, maintenance, and management. While some programming can come in handy, it's generally not the primary focus of the field. Python and other scripting languages are well suited for IT work, IMO.
I want this account deleted.
but its not going any where
Just like the job. He better be ready to be done progressing altogether if he takes a job like that.
well we need more hands on training / apprenticeships.
The college system is kind of out of date and comes with the full load of fluff and filler classes. Tech schools are roped into the college system as well.
There is lot's stuff that is poor fit into a 2 year or 4 year plan and other stuff that needs a lot more hands on training that is a poor fit for a collgle class room. When more of a community College setting is better. Yes community College offer classes non degree.
Also the cost of college is getting to high and by cutting down what is now 4-5 years down to say 1-3 years can save alot and make it quicker to learn skills.
ALSO THERE IS lot's of IT / tech work that is not even application development or CS that get lumped into CS as the tech schools get no respect.
You shouldn't have much trouble passing the GRE; see if you can find a graduate program where you can get a master's degree. That should only take ~2 years and then you have something to show for your efforts. The CompTIA certs are a joke, the MS certs change all the time, and the rest are too poorly defined to be worth the testing fees.
Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
Any time spent in school just to get some extra paper would be better spent expanding your network while looking for the right job. In the mean time, there are probably quite a few IT consulting companies in your area that are always looking to fill entry-level positions (basic network administration and desktop support). The pay isn't usually that great, but it's much better than retail, and gets you good working experience with the industry. Not to mention contacts.
Just be honest and upfront about your skill set and don't try and pass yourself off as someone you're not. You could probably expect $15-20 an hour, not to mention the free "education" and work experience.
Or, you could spend 20-50k (or more) learning "best practices" with how to configure WSUS and what an OU is. Your choice.
70% of IT professionals these days have some sort of degree.
Tech skills on their own won't get you far - back in the late 80's and early 90's when I got started in the field, it was sufficient. I dropped out of college to pursue an IT career and did very well for 15 years in the field before moving on to other stuff.
Then I got laid off, and the lack of degree has really hurt my ability to get a job in this economy. I currently do contract writing for software companies, and that pays well enough - when there's work to do.
My advice would be to pursue the degree while working full-time, either as an intern or other full-time position. The degree, sadly, will be more valuable than the experience.
In the IT field, things that help are the ability to solve business problems (IOW, don't focus strictly on technology) and to manage projects. PMP certification will get you farther than any technical certification (the tech certification market has been in decline for years). Companies don't want to hire someone with specific technical skills - they want people who can function independently and can manage IT projects. Being able to do that will really help you.
A CS degree in combination with project management skills, familiarity with Agile/SCRUMM development methodologies, and business skills will take you farther these days than tech skills alone.
Jim
Insanity is a gradual process; don't rush it.
If you want to become a professional software developer as opposed to being locked into IT support, the Masters program at the University of Chicago sounds ideal for you. It is specifically designed for those with little or no formal programming experience before beginning the degree.
yes, me. I'm going to try to convince you to pick another field.
(enable GOML mode)
it used to be that having a thinking-based job was good in the US. outsourcing was not in vogue and the social contract was about you studying, working hard, moving up in the corp world and as long as you can still work, there would be a job for you.
fast forward to today and extrapolate to today+n. do you really think that the trend we see (outsourcing and the local race-to-the-bottom) is going to reverse? what chance do you think you'll have to compete with someone who works for a fraction of your income and can live on less since it costs less over there?
think hard before you take on a vocation that can be outsourced.
re-think vocations that -require- you to be there. electrician, construction, car repair. whatever - but its important to find something that they can't just 'do remotely'. if they can, they *will*.
they didn't used to outsource software devel. they sure as hell do, now. and what they don't outsource, they hire h1b's for. locals are squeezed out.
thinking arts, whatever the subject, are not a good investment for your own future.
how 'funny' that is. how sad, actually. its our western race to the bottom. class warfare. whatever you want to call it; but if you think for a living, forget about. they can replace you for less and they WILL.
--
"It is now safe to switch off your computer."
Knowing C, IMO, is a litmus test for someone who knows how computers work. Pointers, memory, file I/O, etc, aren't directly useful in higher level languages these days. But knowing they exist would help someone write smarter code.
I did an algorithms course a few years ago. The course was about how to write highly optimised searching/sorting/graph-traversin algorithms. Basically the kind of computation jobs that take a long time to complete and where optimisation that yields even a few percent increase in speed get you significant monetary savings. On day some students asked the teacher whether they could write assignments in Python rather than C/C++. The teacher just stood there without knowing what to say, then overcame the urge to humiliate the student and an long and awkward silence just said, NO. Scripting languages are nice but you can't solve everything with scripts.
That's funny, when I took an algorithms class, my instructor said we could use whatever language we are most comfortable with (of course, at the time, that was pretty much just C, Pascal, or FORTRAN). He wasn't looking for a production-release ready algorithm, he was just looking to see if we understood how to write the algorithm.
Your post sends me mixed messages. First you are telling us that you started out with Qbasic (that's pretty old-school, that's from when I was a kid, and I'm no youngin anymore I can tell ya)...and then you're asking about internship. From where I come from, internship is for the kids right out of school, not for 40-50 year old computer dinosaurs like you and me (if ...you're around my age). I've been around since Pong and Zx-80(81) days, democoder on C-64, Amiga, Atari etc...In fact, I know that if I where to start all over again, I'd go the education way today....back in the days, things where different, you could just take any computer and code stuff from scratch, no libraries, no pre defined variables, no gazillion calls to various OS related libraries and locales.
If you're indeed in my age group, then I can offer a little advice, it may not be right for you, but chances are - if you're like me, then you're better off following your passion instead of trying to start off where the kids today are starting, they'll rip you apart and probably reverse engineer your soul (not kidding about that) before you can say DirectX.
Find a special niche instead, use your "old school" abilities where it'll do you real good, that's what I do. Even though I have all the latest gear, latest ARM microcontroller kits from TI and whatnot and love to play with my toys, I'll be no match for any kid around 20 today that knows his worth in salt.
You have to weigh in the choices of what you REALLY want do do. After 30+ years in IT, I've toned things down, trying to find real meaning in life instead, discover new places, see where my ready-knowledge can be put to good use, repair arcade machines perhaps? Old retro collectors items can be worth a fortune, not to mention the old mainframe systems no young person seem to know, who's going to repair and maintain those? Etc...find a niche, and you'll find happiness.
What this world is coming to - is for you and me to decide.
Why can't you use a scripting language to implement optimized algorithms?
I think perhaps you missed the point of the course. The value is in the algorithm itself, not the implementation details.
Real programming is when you write code in a space and time constrained execution environment, and you find yourself scouring CS literature for the latest algorithms. And anything worse than O(n) is too damn slow.
Non-real programming is when you are creating input boxes on a screen, and calling stored procedures because the DBA doesn't want you messing with the actual tables. And none of the meetings you are in discuss the order of the algorithms being used.
computers. You'll be much happier and richer re-programming humans.
Honestly with your background you'll go broke in no time trying to be a programmer.
Whats the thing about saying UML?
Change your legal name to Linus Torvalds and wrote a Unix-like kernel...
A lot of the companies that develop in Java like to hire graduates without formal CS degree so they can mold the programmer, you will be working on older bloated Java EE servers such as websphere, but its not going anywhere in a couple senses of the phrase. Java, the COBOL of the 1990s, still around.
Numero Uno: get a job. Get more experience in the real world.
How best to do that?
Well, you are lucky in that the job market is pretty good for tech skills. Companies would like to hire more experienced people, but can't always find them. Put your resume together as well as you can and prep for interviews by Googling potential questions and working on them.
Better yet, if you know anyone in IT, have them grill you.
If you are going for a programming job, make sure that you know and can apply basic procedural program concepts such as working with arrays, lists, queues, stacks, iteration, and recursion. Understand the basics of object oriented design. Write programs to practice these things. Find a good CS course online and do the homework.
Wrox's Programming Interviews Exposed is great practice for programming interviews.
If you want to move up, learn more advanced algorithms concepts.
If you are going for a sys admin job, install Linux on your home machine and manually manage it. Ubuntu is great, but learn about partition, booting, permissions, sudo privileges. A Linux admin handbook can teach you a lot.
Don't sweat the philosophy degree.
I do a lot of interviewing/hiring technical types, and have no problem with an non tech degree. Just know your shit.
http://yetanotherpoliticalrant.blogspot.com
I don't think, then, that you understand what sets scripting/interpreted languages apart from compiled 'real' languages.
As far as I know, there is no scripting or interpreted language that will run any algorithm faster or more efficiently than a native compiled program. The interpreted language will have to run through an interpreter first, probably written as a compiled native binary in one of those 'real languages', before it actually performs its actions in the computer using assembly/machine code/whatever the lowest level is.
If you are looking for efficiency, you should be looking at the standard, older, classic languages that are closest to the machine(even if they are harder to program).
If the only way you can accept an assertion is by faith, then you are conceding that it can't be taken on its own merits
...if you choose school, that is. This approach finally occurred to me after I'd received my Master's and worked for a few years. I made the mistake of waiting to think about finding a job until after graduation. I did not make the same mistake when I went back for a postgrad degree. I started looking at job postings long before I started filling out school applications. This helped me determine the appropriate program and qualifications necessary for where I wanted to be. I did not stop until I'd landed a position. (Actually, I still review job postings. It's a good habit.)
If you treat your education as a years-long job search, your class selection and study habits, and extracurriculars will fall into place naturally. School debt/expese/etc is real and needs to be considered, but schools to give you access to job opportunities that you can't find elsewhere. You'll understand that your ultimate goal isn't grades, it's the job you will need to create the lifestyle that you want. And this perspective will help you make the grades needed to get there. It will also help you get cracking on everything else you'll need to get there: resume, work examples, interview practices, networking, publications (if needed), business plans (if needed), technical skills, relevant experience, industry awareness, etc.
Find out about your prospective school's career office, and determine if they are effective. Meet with a career counselor as soon as you begin. Review every aspect of your job search. Internships are the answer to the no-work-without-no-work-experience paradox. Student organization activity should be designed around those that will give you access to well-placed professionals in your field of interest. Every job and internship application should include a revision of your resume and a new cover letter -- no mass-mailing.
Just go get a job. I was a self-taught programmer as well, and got my BA in Philosophy, too.
When I decided to try making my hobby a career, it was RIDICULOUSLY easy to get a job. All I did was use some personal projects as my resume. Showed them my code, showed them what I could do, and was hired.
No one has ever cared that I didn't have a degree in a computer-related field. In fact, my boss never even went to college. You just need some way to show you can do the work. If you don't think you are good enough yet, practice! Create some side projects. Work on open-source projects. Add these projects to git, and suddenly you will be getting a TON of emails about work. Trust me.
Well, I think in my entire curriculum for Computer Science, I had like 3 'fluff' classes which were not surprisingly all general education classes, which were part of every degree program offered. I think the more disappointing part was when some of the classes that 'taught' something I wanted to learn, in fact, did not teach me much aside from how to shirk teaching responsibility with concept drills and endless worksheets on the basics.
When I took an optimization class, we didn't learn to optimize our code. We learned assembly, which most of us already knew from assignments in previous classes, and were just drilled on proper use of various registers and loops. If I had not just sat down and read the textbook like I did, I never would have learned about SSE, paging and caching algorithms, or the optimizations and features of various compilers. I would have been bludgeoned with "How to ASM mediocre".
If the only way you can accept an assertion is by faith, then you are conceding that it can't be taken on its own merits
A good algorithm in an interpreted language will beat a bad algorithm in C or even assembly (for sufficient quantities of data). That's the point of an algorithm class.
You might consider cranking up your network on linkedin. I've had a few friends describe to me how they've used linkedin to solve this very same (common) problem. ie. they find a job they want, find out who is hiring or who is involved, search for that person on linkedin and then find someone you know who also knows that person.
If you can build a network of 100+ people, you may start to notice that you have a second degree connection to people on the inside of the places you want to get hired.
I'm not job hunting right now, but I've tested this a little and the theory holds at least in my region.
and all of that CS does not tech you IT / desktop / severs / networking skills that are needed and ARE there own job.
And so the hunt begins...
I think that my favorite thing to do is building and fixing computers. I enjoy the software side as well, and I know that I can do it, but I also love working with my hands as well. I posted it as "IT work" because it is broad. I really love anything to do with computers, and I have for years, and I love learning as much as I can. I work incredibly well with others, but I don't see myself as going into major software development (which I am told is notorious for 60+ hour weeks).
Exactly. They had a points system and either through extra credit (usually in the form of additional functionality in a program) or some ridiculous curve (for the non-computer students trying to get out of the math req.)
I'm getting my grey beard. I'm an EE; I don't do tech so much anymore, but I've done enough and .. seen things.
The myth that good programmers cannot find work is just that. What is a myth is how common "good" programmers are. I only know a few, "good" programmers. Some of them have degrees, some of them do not. The common thread is that based on their demonstrated proficiency and speed, none of those people are out of work, ever. Spanned over decades.
Go out and hack on some projects. You will be noticed, and you will find work. I know very few people who can write device drivers for linux - and the ones who can, don't have much problem with finding work. GPA not required.
If you have real tech chops and can't find work, you need to learn how to network and go get out and hack on some things, work on the kernel, write some apps and give them away.
Oh.. and get off my lawn.
..don't panic
When people talk about "education" they always think of getting a degree or something
But to us, who have been in the tech industry for ages, we know that education doesn't always necessarily equate to sheepskins
I rather pay high salary to a guy who knows what he is doing than another one who comes with a stack of meaningless sheepskins.
Muchas Gracias, Señor Edward Snowden !
and they live and die on the charisma and connections of the owner, not on the quality of the techs. Customers can't tell a good tech from a bad one, but when they're pissed off a likable owner keeps the contract.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
I mean that. So it doesn't matter too much what profession you're in. Doctors & Lawyers still do OK, but if you've got the resources to go into that (money, unnatural brain power and/or you get by fine on 4 hours/night sleep) then you're in the top 1% of workers. The reason you hear so much bitching from the other 99% is we're becoming superfluous, unnecessary. Robots and computers are replacing us, and there's a sizable portion that say just let us all die. Hell, a sizable portion of that 99% says let the rest die (cognitive dissonance).
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
Those are two different things.
In fact, when I learned algorithms, I learned mostly through pseudocode. Incidentally, simple Python code looks really really like "common pseudocode", the kind you'd see in textbooks like "CLRS".
I always thought the anal syntax of C/C++ (especially the latter) was a big distraction in learning the concepts of algorithms (and to a lesser degree, data structures).
However, C is *the* language for systems programming, and because it is low level enough that there are relatively few abstractions from the underlying hardware, and high level enough that it is almost universally portable (at least "ANSI C" is), it is an invaluable tool for learning how your system works without having to understand a gazillion CPU architectures.
These two things are generally quite different disciplines within CS -- there are people who are well versed in one but not the other. I don't know what algorithm class you did, but seriously you probably got the wrong idea from the class if you thought algorithms were trying to be a few percent faster -- usually good algorithms give orders of magnitude speedups, and the final few percent are squeezed out of the hardware by (for example) writing assembler code in the bottlenecks, taking advantage of CPU specific instructions like SSE, etc. I have a friend who programs GPUs to take advantage of their parallel processing capabilities -- but definitely it is not undergraduate material...
Of course, writing the bulk of the code in C/C++ instead of python obviously helps, but unless the focus of your course was really "how to make programs 5% faster", I doubt it really mattered.
Don't quote me on this.
I graduated with a BA in Philosophy in 2007 with intentions to work in IT. Like you I worked for my local school board through high school and then did Novell administration while in college. I got my A+ at 16 but then did nothing else certification wise until after college.
My interest was in Cisco networking and so I went that route with certifications. With your experience base there is no reason you can't start certing out now. Try to find a tech job and work on certifications as you go. As soon as you finish one go with the other. My biggest mistake was taking time off between certifications.
I can strongly say that I've never been handicapped by having a degree in Philosophy versus not having something tech related. However, that is because I went to great lengths to get independent credentials on my own. If I just had the Philosophy BA and my word on experience I wouldn't be employable.
Going back to school for another degree, in my opinion, would be a waste of your time. You have a 4 year degree, most employers aren't going to care what it is in if you have proven your skills with certifications and prior work experience.
It's not a buzzword, and hasn't been for about 12 years now. Search on the major job sites for jobs requiring UML knowledge.
Monster.com has none; Google has no openings with that keyword, Apple has no openings with that keyword.
Don't get me wrong, you can find job listings for them, but a straight up Google search will assume you are talking about University of Massachusetts Lowell. To find people who care about UML, you will likely have to look at specific company sites for companies which are known to use it: IBM Global Services, HP (the division formerly known as EDS, before HP ate them), or a Larry Ellison "blue sky" startup which is never intended to produce product, they are expected to lose money so Larry can write down his taxable income.
It can teach you some valuable lessons about thinking, at a high level, about how software systems can communicate internally, and stepwise programming, but if you expect to be hired, then sat down at a desk with a copy of Rational Rose and told to design software systems with it, it better be at one of those big 3 companies.
I undergraduate degree in in law. And I am now happily employed as a software engineer at a tech company.
But then, of course, it's all networking -- I wouldn't have gotten past the HR resume screeners otherwise. I know some companies will give you an interview if somebody in the company is willing to refer you. And once you get into the interview stage, the degree is usually not a big deal. To be honest though, for younger candidates, the choice of doing a non-CS degree does add a tiny bit of doubt whether (s)he is really committed to a career in tech.... but normally I wouldn't start seriously doubting unless there's other evidence to raise my eyebrows.
As for the education value, well, it depends on how much you already know. I've been very fortunate to be able to learn pretty much everything that would have been covered in an undergraduate CS degree by a mixture of self learning, discussing and exchanging ideas with friends, peers and mentors, and informal training from participating in programming contests, etc. I guess you'll just have to try find out how much you don't know, and try to learn those things. If you find you're often stuck, then perhaps you'll want to get some "proper" education -- but only at a good school with a good CS program.
And if you just need that damn piece of paper, it could be actually cheaper (or at least, quicker) to try get a MSc in CS. I'm sure you could find some institutions that are willing to waive requirements that you have an undergraduate degree in the same field, especially that you already took some programming courses and could demonstrate some knowledge and experience in the field.
Don't quote me on this.
more people like this and so confuse bout it..me too but sometime i want enjoy my life..no worry about money just study Rakuten.co.id: Toko online murah, serba ada Barang unik Jepang
"I like computers"... it only gets worse when the hopeful claims to know "how to take them apart". Gee whiz! We got a rocket scientist here! He grasped the concept of the SCREW! Pity that by the way he phrased it, it is clear he has never managed to actually put one together again. But he has a golden future at a recycling center.
Neither is taking courses and getting perfect scores any clue. I took some exams and passed them with perfect scores even on languages I never used. It is easy. Most computer courses already give you a passing grade if you refrain from trying to eat the keyboard.
In The Netherlands, the current shortage is NOT in guys who can hook up a PC, or even those who can code. It is in people who can finish an application to specification within a budget. Coding is EASY. Coding well is harder but very few computer courses require you to write more then a few thousand lines of code. Hell, in university most students will build their own OS or something SEEMINGLY difficult. But building a base OS that just runs on one machine and doesn't really do anything is easy. Supporting an entire eco-system of hardware and making it fully functional for daily use by real people, THAT IS FUCKING HARD. Why do you think there are only so many OS'es out there? Why do think many of the "new" ones are really just Linux with a skin? (Android, Meego and its offspring, various realtime OS'es, Bada can use a Linux kernel as an option).
Same with a web application, Webshops are a booming industry yet the number of packages available is truly limited, especially ones that are any good. 4chan software is re-used on countless sites. Most forums run on the same code base.
With mobile Apps we have seen that there are PLENTY of would-be developers out there but the vast majority can just code, have a bright idea but cannot develop it. they cobble pieces together and shove it out the door with "it works for me" and wait for the money to roll in.
IF the poster wants a job in the very wide field of IT OR development (in many ways IT is so wide that development can't be considered a part of it) he FIRST needs to get an idea of what he wants to do, and then get some experience doing it.
If you came to me for a development position, no matter how junior and said "I want to do something with computers" I would tell you politely I have no room for you. Anymore then a carpenter has room for someone who wants to do something with hammers. I can teach you how to code, I might be able to teach you how to become a developer.
I can't teach someone who thinks everything that involves proximity to a computer is the same job.
I have had occasion recently to once again see the difference between a senior DEVELOPER and a senior CODER. One guy on a project I was reviewing happily showed me amazingly well written clean code with full documentation, fully complete and accurate unit tests, continues deployment. Full A+ material.
Just a tiny pity that it had taken him apparently 1.5 years to do as subproject budgetted for a few weeks in a project that was supposed to be finished in less then half a year... he had completely overshot the mark, gone completely beyond the spec and written something vastly more complex then what was needed.
And yet, he was in the company highly regarded despite essentially being worthless to the company... without the main project being ready, there was no use for his code. But the owner of the company told me, "he writes really nice code, nicer then yours, so why should I contract you to fix it". Needless to say I didn't take the interview further, if the owner of a company can't see the difference between being productive and being on a hobby project in this bosses time, there is nothing to manage except a fast exit.
Once again, coding is easy. Finding good coders is trivial. Getting a project out the door on time and with in specifications is the hard part. Don't impress me with your fancy one page script, show me shoddy
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
In addition to asking here, try searching the job boards for your ideal job and see what most jobs are asking for. When it comes to technologies, the job requirements are usually high reaching and encompass more than they actually require, but I think it is more accurate when it comes to the degree. My general feeling is that sysadmins don't need a B.S. Software Engineers usually need one.
Obviously, you might get a job without a degree or be unemployed with a degree. However, what maximizes your opportunities? I would say a degree. However, also consider what school you are going to. You might want to look at job placement rates for the schools you are looking at and how much it will cost.
And while working and getting a degree seems the best of both worlds (either working or school full time), it is a lot of work if you want to excel at both at the same time.
There are business applications, and what I would call technical applications such as image processing, geographic information systems, numerical analysis, etc. I work for a large company that does the latter, and every project that I am aware of uses C++.
You would be better off creating your own job. Don't go work for a company. Don't waste time on further education. Start programming, start producing products, start solving problems for people. Don't be a Dilbert. Be a creator.
I'd agree with Joe_Dragon that apprenticeships can make a lot of sense. Your post makes me think about something else, putting a few factoids together in a new way. I'm thinking, speculating a bit from what I saw in academia the 1970s and 1980s, that there was a time, decades ago (like before the 1970s) when academia was growing so fast (exponentially) that people from industry without PhDs or much anything beyond real knowledge could become well-respected reasonably-paid teachers (unlike today's somewhat disrespected and poorly-paid adjuncts). In the 1970s, exponential growth of academia stopped (as David Goodstein points out). So, at that point, there came a glut of PhDs on the market with few job prospects since academia kept churning them out at a rate appropriate for exponential growth that was no longer happening. Working conditions for most new faculty plummeted (supply and demand). It became impossible to get even a mediocre college teaching job without a PhD (or at least a Masters for lesser schools). So, academia over the last couple decades became staffed with *only* academics with little real-world life experience which it generated internally. The two-way interchange between industry and academia became essentially one-way, academia to industry. Add to this in the USA the loss of the family farm, loss of good hands-on union mechanical/electrical jobs with apprenticeships, the expansion of the school year, and the increase of opaque black boxes in industry, and the result is few entering academia had any practical non-academic experience or had any way of getting any (like by summer jobs). This of course is all a bit of an over-simplification, yet is may explain why courses are less useful now? References:
http://www.its.caltech.edu/~dg/crunch_art.html
http://en.wikipedia.org/wiki/Disciplined_Minds
http://philip.greenspun.com/careers/women-in-science
More links here:
http://p2pfoundation.net/backups/p2p_research-archives/2009-October/005379.html
See also my: http://www.pdfernhout.net/post-scarcity-princeton.html
Bottom line: most real education is "self-directed education", whether it is in the garden, in the shop, in the library, or in the "classroom". However, self-directed does not mean we do not learn much from other people, whether face-to-face or through their writings or recordings. Thus, you learned from people who wrote the textbooks, even if the "teacher" you say regularly face-to-face may have had little to offer.
You may be beyond this, but this is probably a good way to learn computing almost from the ground up these days:
http://www.nand2tetris.org/
Or one can build programmable computers from Redstone in Minecraft? :-)
It sounds like anyone who teaches optimization by teaching assembly probably does not know much about optimization, since assembly is just a distraction from it, especially given today's compilers can generally write better assembly for most CPUs than most programmers ever could. The real optimization challenges are in algorithms, thinking about prioritization of values and managing complexity (of both data and implementations)...
Nand-to-Tetris is a bottom up book. "Data and Reality" by William Kent is a complementary book that is in-a-sense top-down:
http://www.bkent.net/Doc/darxrp.htm
I'd also recommend playing around with Forth (or a latter day equivalent like "Joy") to get a good sense of factoring problem well.
http://en.wikipedia.org/wiki/Joy_(programming_language)
My kid st
A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
I guess in "DevOps", they've started calling sysadmins "Systems Engineers". Which is sort of an insult to my "real" MSSE degree, but it does kinda use the same techniques, sorta. But you ultimately have root on the production servers, so yeah, you're a sysadmin. So search jobs listings for both.
Some main categories of experience we look for (these are some suggestions of the leading FOSS versions of these tools, but bonus for having experience with other tools that do these things... your employer will probably make you use some commercial equivalent anyway)
Monitoring: Nagios / Zenoss , SNORT, NTOP. Know how to write your own monitors. Also get good with writing filters in Wireshark for deeper diagnosis.
Load Balancers: F5 BigIP irules, or NGINX
Build Automation: set up Jenkins to run and report on all of your boring, repetitive tasks. Hands off server deployment with Puppet / Chef; know how to build your own RPM / DEB packages.
Virtualization: VirtualBox and VMware, might as while play with AWS and then set up your own OpenStack cloud too.
Version Control: know your way around Mercurial / GIT / etc. The GUIs are fun.
Ticketing systems: Set up and use Redmine or similar for tracking tasks.
Databases: Know how to backup / restore, poke around using myPHPAdmin or similar.
Agile / Scrumban: yeah, it's just a management fad, and no one practices it right. But at least buff up on the basic concepts so you're familiar with the terminology and what problems they're attempting to solve.
There's more, but these seem to be what I spend a lot of my time doing, and playing with these FOSS tools should get you some familiarity with the concepts and terminology.
Knowing C, IMO, is a litmus test for someone who knows how computers work. Pointers, memory, file I/O, etc, aren't directly useful in higher level languages these days. But knowing they exist would help someone write smarter code.
I did an algorithms course a few years ago. The course was about how to write highly optimised searching/sorting/graph-traversin algorithms. Basically the kind of computation jobs that take a long time to complete and where optimisation that yields even a few percent increase in speed get you significant monetary savings. On day some students asked the teacher whether they could write assignments in Python rather than C/C++. The teacher just stood there without knowing what to say, then overcame the urge to humiliate the student and an long and awkward silence just said, NO. Scripting languages are nice but you can't solve everything with scripts.
What? Why would the programming language matter in an algorithms course? If you're talking about trying to squeeze efficiency out of everything, sure, but that doesn't sound like the focus of the course (and shouldn't be in algorithms course, anyway).
Comment removed based on user account deletion
Writing software (GNU) != Selling software (Oracle) != Selling consulting (IBM)
Casteism
Unlike in Capitalism, Globalization demands you need to be an Highly Skilled Wage Slave to get a job
Casteism
Comment removed based on user account deletion