aspose file tools*
The moose likes Jobs Discussion and the fly likes programming career advice question  Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Careers » Jobs Discussion
Bookmark "programming career advice question  " Watch "programming career advice question  " New topic
Author

programming career advice question

derek smythe
Ranch Hand

Joined: Apr 18, 2011
Posts: 63
Hi, I have a programming career advice question. I have a college degree in art. I do not want to pursue that as a career, I would like to pursue a career in programming, mainly in Java. There are a few questions I have if anyone can help please.

I keep hearing people telling me about outsourcing and that I shouldn't be a programmer. I am getting sick of hearing that and would like to know if outsourcing in the USA is a real threat or just an exaggeration from negative people.

I might be able to go back to college for computer science and programming, but I wanted to learn on my own, and was told that if I become certified as a java programmer, that is enough. Or is it mandatory that I get a degree to get a job in an office locally (New Jersey USA).

I was wondering, all the ads for java jobs on craigslist in my area ask for a few years experience, but I do not have this, and won't, for "a few years". LOL. So I was wondering, if you need experience to get a job, and a job to get experience, that is my dilemma.

I guess that sums it up, basically, the outsourcing fear, the unqualified fear (no degree) , and the experience necessary problem. Any help greatly appreciated. Thank you. I won't be able to reply for a while as I am going to sleep now. Thank you.

this post was originally posted http://www.java-forums.org/jobs-discussion/44123-programming-career-advice-question.html, but no answers.

derek smythe
Ranch Hand

Joined: Apr 18, 2011
Posts: 63
In the computer programming industry, experience is King.

Real world, hands on, practical programming experience is valued more than computer programming certifications, software development diplomas or even programming job titles.

What you know is much more important than how you obtained the knowledge!

The next time you read a computer programming job description and you feel overwhelmed by the list of degrees or certifications required, just remember that the job market for computer programmers is not really that formal.
How To Get Computer Programming Job Experience

Now, you know that raw, hands on computer programming experience is valued above programming degrees, job titles or programming certifications, here are tips on how to increase your programming experience.

Open Source Projects

there are various open source projects that you can join and contribute code to. Before you join an open source project, take some time to learn the code, use the application, get to know the team members and become familiar with the code review or code commit processes.
Non Profits

you may get programming experience by helping a non-profit organization that needs with building a database, a website or a software application.

Be sure to let the non-profit organization know that you are doing the job to get more programming experience.

You need to be truthful and upfront about your level of expertise or you may run into problems by taking on more than you can handle.

When you committee to working for a non-profit organization, you may be required to work at the pace of other senior, more experienced team members.

Also, the non-profit may be racing towards meeting some important deadlines.

So, even if you are offering free help, the non-profit organization needs to understand that you may introduce additional delays to the timetable.

If this is not acceptable then you and the non-profit organization are not a good match.
Personal Use Software Applications

You may get computer programming experience by building a software application that provides some services or benefit to you.

For example, an employee I managed built a price watching software applications in his spare time.

The application was a web crawler that would go to specific websites and monitor the bids and prices of products he was interested in.

You can get some really cool programming experience that way because you are your own customer, you are not going to stress yourself over deadlines and you understand the needs you are trying to meet.

The downside is that software development managers do not rank this type of programming experience as high as that gained by working for non-profit organizations or open source projects
Professional Computer Programming Experience

You may get computer programming experience from a professional software development organization.

This involves having a software development company assign programming projects to you, review your code and mentor, coach or train you on your weak spots.

This method is preferred because hiring managers value programming experience derived from professional mentors above those from self study or non profits or other sources of programming experience.

The reason is that a professional software developer can critique your code or database design while you or a non-profit may not review or critique your own code.
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
Software engineering is an art and depending upon what type of software is being created, creative art skills are very valuable. The ability to apply such skills to problem solving and analysis is a good thing to possess. However, computer programming is only a part of software engineering and requires technical ability to understand programming concepts. One does not plan a "career" in a programming language though. That is like saying I am going to pursure a career in pencils or art markers.

Outsourcing is very real. Mostly because the education system in U.S.A. is broken and individuals in other countries are genuinely "smarter." There are other reasons besides education, outsourcing low-level jobs and outsourcing advanced positions have their own characteristics.

You need to (1) learn how to program and then (2) find a hiring manager that understands the creative side of computer programming and software engineering, and (3) convince this manager that you are the better candidate. This does not "require" any degree or certifications. However, number 2 is not easy. Moreover, you need to look beyond "craigslist" website for job opportunities. Think about joining local associations and participating in special interest groups in your local area. Meeting people and developing social skills will help you better than a Java certificate or a Bachelor of Science degree.

Good luck son!
derek smythe
Ranch Hand

Joined: Apr 18, 2011
Posts: 63
Thank you for that. Also, is outsourcing so bad that it is dangerous to stake my future on computer programming as a career? People are telling me that it is dangerous. Mainly I am trying to find out if it is safe to pursue a computer programming career. I don't want to invest years learning it and find out that everything years from now is done in India, just like America makes clothes in china now. Any more advice greatly appreciated. thanks. Derek
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
A "career" takes many, many years to develop. At this point for you, you shouldn't be thinking so much about "career." You need to experience different work environments and situations. Once you gain experience, you will be more able to clearly think about your career development and plan and execute more effectively.

Understand that there are hundreds and hundreds of thousands of software professionals working in the U.S.A (for the past 50+ years and well into the future.) There are many different types of outsourcing. You should take time to understand all of the different ways outsourcing is used, e.g. call centers, testing, etc. Also, you need to assess your abilities to learn and function and combine this with you level of desire. If you have fears that you will not do well enough to compete in the job market for computing professionals, then you have failed already. McDonald's is always hiring.

You need to take time to study job markets and hiring practices, and reflect on what you think "may" work for you in the Northeastern part of U.S.A. Everything is relative to your geography.

Aside, clothing that is so-called "made" in China is typically "designed" is the U.S.A. and the "bills are paid" by companies based in U.S.A.
derek smythe
Ranch Hand

Joined: Apr 18, 2011
Posts: 63
Thank you. I will have to look into it more. I am not fearing my ability to learn programming, I think I could be a great programmer. I am fearing that once I learn it after years, the jobs will be scarce due to outsourcing. I will have to look into it more. Thank you.
derek smythe
Ranch Hand

Joined: Apr 18, 2011
Posts: 63
Hi Jimmy, please give me your opinion on this article? I found a lot of negativity on the net, but this one is positive. I was wondering what you think about the conclusions there?

outsourcing article

and this one

this one also
Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 30537
    
150

Derek,
Sorry to be negative, but you really need some strong volunteer experience without a degree to get a job. Given a choice between someone who knows Java and has a background in computer science and someone who studied art and got a certificate, I'm going with the former. The first person has the background to pick things up faster and more thoroughly.

On outsourcing, it is real. However, all the jobs aren't outsourced and I don't think they will be. The forio.com article is from 2004 which is forever in computer years. One way to value is to not just be a programmer. Translating detailed requirements into code is the easy part. Being analytical, improving things, discerning what is really needed are harder.

On the career colleges article, they point out a two year degree is tough. No degree in the field is even tougher!


[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
Derek, your perspective sounds good. Keep in mind there are many types of software. Multimedia development, graphics, animation, for example all require creative skills best found in an artist and all of them invlove computing and programming. To create business software one needs to think creatively. Many artists, musicians and writers become software engineers because they can typically use both sides of their brains. Aside, Computer Science and Software Engineering are related but are surely not the same, and undergraduate Computer Science programs typically are not long enough to cover Software Enigineering and Liberal Arts courses. So, there are known deficiences already with Computer Science graduates. You can certainly agressively compete with them if you are sharp
Rahul Sudip Bose
Ranch Hand

Joined: Jan 21, 2011
Posts: 637

Jimmy Clark wrote:You can certainly agressively compete with them if you are sharp


So, it all boils down to how intelligent, creative and innovative (and humble ???) a person is, besides having the necessary theoretical knowledge ?
I guess that if you do a routine job and nothing "special", the chances of your job being outsourced will be high ?

PS : I agree with the author of this link : http://forio.com/resources/article/the-pitfalls-of-outsourcing-programmers/


SCJP 6. Learning more now.
derek smythe
Ranch Hand

Joined: Apr 18, 2011
Posts: 63
Jeanne Boyarsky wrote:Derek,
Sorry to be negative, Given a choice between someone who knows Java and has a background in computer science and someone who studied art and got a certificate, I'm going with the former. The first person has the background to pick things up faster and more thoroughly.


You are right that is extremely negative. I have a background of 10+ years in computers. And I knew more than my teachers for art in college, I was better than them, because I was self taught. Many famous programmers were self taught, and in my experience, the best ones on the net that I have spoken to and hired for lessons were self taught. You are right about the volunteering, I will have to do that to show that I have experience. But I probably am not going back to college, unless it seems impossible for me to get a job. I know a computer science graduate who knows like nothing after 4 years of school. I know more than him. Also the 2004 article wasn't about the time it was written, it is timeless, it was principle.

Jeanne Boyarsky wrote:
The first person has the background to pick things up faster and more thoroughly.


Da Vinci and Einstein were also self taught. The fact that someone went to college can "pick things up quicker and more thoroughly" is a wrong idea.
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18840
    
  40

derek smythe wrote:Da Vinci and Einstein were also self taught. The fact that someone went to college can "pick things up quicker and more thoroughly" is a wrong idea.


I don't think that Jeanne was saying that college is always better is self taught -- heck, since CS is a pretty new engineering discipline, you can argue that any famous programmer over 50 was self taught. I think she was giving you a view of the industry (okay, arguably she is perpetuating the view). Unfortunately, HR departments only get minutes per resume to cull it. And hiring managers simply don't have the time to figure out, that you are better than "computer science graduate who knows like nothing after 4 years of school". It's pretty tough out there, even for CS grads, and you are starting with a handicap.

Henry

Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 30537
    
150

derek smythe wrote:You are right that is extremely negative. I have a background of 10+ years in computers.

I don't see that mentioned in your initial post. If I had, I would have asked what in computers your background is in. Big difference between using Excel and programming .

derek smythe wrote:I was better than them, because I was self taught. ... The fact that someone went to college can "pick things up quicker and more thoroughly" is a wrong idea.

The thing is that some people that are self taught learn the fundamentals and are very good. Others reads Sams "Java in 24 hours" and think they know everything. It's hard to tell from a resume. And it's more expensive to interview a lot of self taught developers than find bright college students. In our industry, everyone has to be able to self-teach themselves because technology changes fast.

And Henry is correct. I wasn't saying that college is better than self taught. I was sharing an opinion on hiring. If you are able to get a job through networking as opposed to HR, you would probably have a better shot. But that requires knowing someone who knows of an opening.
Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 30537
    
150

Henry Wong wrote: I think she was giving you a view of the industry (okay, arguably she is perpetuating the view).

Since we are talking about this, I know of three views in the industry:
  • all else equal, prefer a degree in CS or a related field - this is the view I see the most and hold
  • favor certs and don't worry about the degree - I haven't met anyone with this view, but I have read about it
  • prefer a liberal arts major because it is easier to teach programming than communication - I've heard this one come and go but I've never heard it from someone who does programming. Only from people who think programming is so easy a monkey can do it. Not a shop you really want to be working in.
  • Jimmy Clark
    Ranch Hand

    Joined: Apr 16, 2008
    Posts: 2187
    Which industry is this? Software engineering is a fundamental component of almost every industry on the planet. There isn't one magical "software" industry, there are hundreds of industries which use computing programs and consists of varying theories, organizational structures, and hiring practices.
    Jeanne Boyarsky
    internet detective
    Marshal

    Joined: May 26, 2003
    Posts: 30537
        
    150

    Jimmy Clark wrote:Which industry is this? Software engineering is a fundamental component of almost every industry on the planet.

    The industry of companies that hire developers. I went to a presentation last night where he said if IT was a country, it would have the 4th highest GDP in the world.

    Jimmy Clark wrote:There isn't one magical "software" industry, there are hundreds of industries which use computing programs and consists of varying theories, organizational structures, and hiring practices.

    True. But I'm generalizing somewhat because listing the hiring practices of every single company would require a ton of research.
    Jimmy Clark
    Ranch Hand

    Joined: Apr 16, 2008
    Posts: 2187
    Companies of "many" industries hire software developers and city, state and federal government organizations also hire software developers. In these organizations they all have IT departments which support the business or government that they belong to. It is not the IT department that generates revenue.
    chris webster
    Bartender

    Joined: Mar 01, 2009
    Posts: 1713
        
      14

    Jeanne Boyarsky wrote:
  • prefer a liberal arts major because it is easier to teach programming than communication - I've heard this one come and go but I've never heard it from someone who does programming. Only from people who think programming is so easy a monkey can do it. Not a shop you really want to be working in.


  • Drifting off topic, I know, but I couldn't resist responding to that one, Jeanne!

    I have a liberal arts degree (mainly languages with some other stuff along the way), although I did a year of CS in college, and I recently took a year out to do an MSc in a computing-related discipline. But I found my way into software development by chance over 20 years ago and discovered I was reasonably good at it, at least in the areas I've worked in so far. My specialism is mostly database applications, so maybe that's kind of a different skill set from mainstream computer programming to some extent - lots of set-based thinking and so on - or maybe my background as a linguist helped build some of the same neural pathways I now use for "translating" requirements into working code, who knows.

    But when I started out, the IT industry was expanding rapidly and there simply weren't enough CS graduates to supply the industry, so they started hiring arts graduates e.g. by putting them through various aptitude tests and so on to try to identify those with the potential to become programmers. This was great for me, of course, and IMHO great for the industry, because you had a lot of people with different backgrounds, experiences and skills coming into the industry, which brought lots of different perspectives and ideas into what can be a very blinkered business. And it also opened the way for many more women to enter an industry that still tended to assume technical work was for men only.

    By the late 1990s, those doors were closing, as the colleges were churning out CS graduates, and graduate schools were offering conversion courses into IT. Many workplaces started filling up again with more typical (mostly male) CS graduates, and IMHO this was actually bad for many areas of commercial IT, because you ended up with a lot of people who could code a nifty sorting algorithm from scratch or build their own compilers from old bottle-tops, but sometimes could not get their heads around why they should be doing that, or indeed why their employers should pay for them to explore ever more abstract theoretical ideas instead of delivering robust and usable applications for their business users.

    There is a strong tendency in the IT subculture to worship the "Ubergeek", to regard complexity as an end in itself, and to lose sight of the fact that most of the time, most of us are not engaged in super-cool computer science, but just trying to use tried and trusted techniques and tools to provide something that will allow our end users to do their jobs more easily. Unless you work for a software house or manufacturer who actually sells software, most of what you do as a developer costs the business money in the short term, so it is vital that the products of our efforts deliver value to the business users, rather than simply providing occupational therapy for techies. See Steve McConnell's essay for some thoughts on that.

    So in parallel with these changes in recruitment trends, and perhaps related to them, we have seen a massive rise in the complexity of software, some of which was inevitable (e.g. for distributed web applications), and some of which cannot be said to have improved the productivity or efficiency of delivering mainstream business IT functions in any way (Rod Johnson described this as the "complexity industry" I believe). The industry has responded to these issues by introducing ever more layers of abstraction and tried to come up with different recipes for success - architectures, design patterns, approaches to business analysis, Agile development and so on. But a huge proportion of IT projects still end in failure, and the costs of those failures are often astronomical.

    So although we have returned to a far greater emphasis on recruiting people with strong technical skills into the industry, and those technical specialists have invested a great deal of effort in creating new techniques and tools, it doesn't actually seem to be helping us get any better at achieving the basic goal of delivering value to our business customers.

    I agree entirely with you that you can't just teach programming to monkeys, and the industry will always need people with the in-depth theoretical understanding of computer science to create innovative new techniques and technologies. But I would also suggest that in many areas of commercial IT there should still be room for people with different skills and experience, provided they can also demonstrate the ability to learn how to deliver decent software to their end users. This is indeed a huge industry, with a huge range of potential niches for people with different skills and interests, and it would be good to see this reflected in recruitment policies where appropriate.

    Sadly, in the current climate of outsourcing and bulk offshoring, with a widespread tendency within the industry towards a monoculture of CS graduates with very narrow experience (even in purely technical terms), I'm not sure this is still possible.


    No more Blub for me, thank you, Vicar.
    Henry Wong
    author
    Sheriff

    Joined: Sep 28, 2004
    Posts: 18840
        
      40

    chris webster wrote:
    Jeanne Boyarsky wrote:
  • prefer a liberal arts major because it is easier to teach programming than communication - I've heard this one come and go but I've never heard it from someone who does programming. Only from people who think programming is so easy a monkey can do it. Not a shop you really want to be working in.


  • Drifting off topic, I know, but I couldn't resist responding to that one, Jeanne!

    I have a liberal arts degree .... [lots of stuff deleted for brevity]


    I really like the summary, and agree with the conclusion. The world isn't the same when I started, twenty plus, years ago. There just isn't any options of doing IT work without any (or little) IT skills. These days colleges are churning CS degrees -- even after the dot com bust of 10 years ago. There are even very large university that churn out degrees for specific fields -- such as system admins or web developers.

    Of course, you can argue that the IT industry is much bigger now too, but given the options out there, companies would have to be facing huge issues with the lack of soft skills for HR to give credence to such policy again.

    Henry
    chris webster
    Bartender

    Joined: Mar 01, 2009
    Posts: 1713
        
      14

    Henry Wong wrote:Of course, you can argue that the IT industry is much bigger now too, but given the options out there, companies would have to be facing huge issues with the lack of soft skills for HR to give credence to such policy again.

    Fair point, but you can still ask the question: Does everybody in IT need a CS degree, or do we simply use the CS degree as a quick (lazy?) way to filter out lots of other people who might be as good (or better) at doing the job? And when employers and recruiters are constantly complaining about the alleged "skills shortage" (which is often used as a justification for shipping jobs offshore), why do they insist on ignoring so many alternative candidates?

    If we really needed all those CS graduates in order to do the job better, then by now we should be seeing the benefits of this policy. But in my experience that just isn't happening.
    Henry Wong
    author
    Sheriff

    Joined: Sep 28, 2004
    Posts: 18840
        
      40

    Jeanne Boyarsky wrote:
    Since we are talking about this, I know of three views in the industry:
  • favor certs and don't worry about the degree - I haven't met anyone with this view, but I have read about it



  • I have met a few with this view, but it has mostly from the candidate side -- it is rarely ever from the HR side. The basis for this argument, and even used by the OP of this topic, is that it is possible to go through a four year education, and know little or nothing. This is even backed up with anecdotal cases of such people.

    And yes, the argument sounds like a strong one.... but the counter argument is. It is also possible to go through a few months of studying to get the cert, and know just as little. In fact, it is more likely that you know less -- such as all the stuff the certs didn't cover. The purpose of the four year degree is to judge you ability, and willingness, to learn -- if you can stick out the time it takes to finish a four year degree, and all the courses which run the gamut from math, history, music, along with the technical stuff too, you are more likely to be able to come-up-to-speed, and less likely to be a bad hire risk.

    Henry
    Luke Kolin
    Ranch Hand

    Joined: Sep 04, 2002
    Posts: 336
    Henry Wong wrote:I really like the summary, and agree with the conclusion. The world isn't the same when I started, twenty plus, years ago. There just isn't any options of doing IT work without any (or little) IT skills. These days colleges are churning CS degrees -- even after the dot com bust of 10 years ago. There are even very large university that churn out degrees for specific fields -- such as system admins or web developers.


    From the hiring that I have done and the candidates I've seen, I think it's legitimate to ask whether a CS degree (or any specialized tech degree) is a guarantee of any IT skills at all. From what I've seen, it's not. I recently interviewed a pleasant fellow with a Masters in CS who had no understanding of basic data structures or simple programming concepts. I manage a team of software architects and the educational background of the group varies from degrees in liberal arts (language, philosophy and history) to a post-graduate degree in education. We also have an aerospace engineer and a token CS graduate. I believe educational background to be so irrelevant to ability and success in the field that I can't even tell you the degrees of the last two people I hired, or even if they have one.

    While one can say that a degree might be a useful demonstration of persistence and effort, I'd argue that a far better indicator is for someone to actually start coding and creating a portfolio of software that they've created. The investment is infinitely smaller than a college degree, and is far more directly correlated to success in the field. The most successful and intelligent people have in my experience been keenly interested in software creation, and if they were unable to do anything interesting at school or work they were exploring on their own. The capital required to develop software is dropping roughly in accordance with Moore's Law.

    This approach is less likely to get you a job at a big company, but there are very few interesting Big Companies to work at these days, and almost inevitably they use poorer hardware and older tools than one can use at home.

    Cheers!

    Luke
    Jeanne Boyarsky
    internet detective
    Marshal

    Joined: May 26, 2003
    Posts: 30537
        
    150

    Chris,
    I like your response on the liberal arts part.

    There are a lot of people with CS degrees who have no business being developers too. I don't disagree that a liberal arts major can become a great programmer. The learning curve is higher though.

    chris webster wrote:provided they can also demonstrate the ability to learn how to deliver decent software to their end users

    This is the part that hits me. If it was demonstrated by volunteer work/an open source project/etc, that's great. Getting one certification doesn't demonstrate the ability to me though. It's hard to tell if someone has grasped how much is out there if they are an "expert" on something so narrow. I don't think the database field is different with respect to background. I'd think you want someone who understands how I/O and paging works over someone who has a SQL cert.

    chris webster wrote:Fair point, but you can still ask the question: Does everybody in IT need a CS degree, or do we simply use the CS degree as a quick (lazy?) way to filter out lots of other people who might be as good (or better) at doing the job?

    Does it have to be an either/or? I think it's both. People need certain knowledge to do a good job. (I'm excluding first level help desk and a couple other jobs here.) It's possible to gain lots of knowledge on your own. But hard to tell. I also feel it is less likely that someone studied in as much depth on their own as in a degree. Particularly someone with no experience. But yes, if someone were to study for years in depth, they would be just as good.

    chris webster wrote: And when employers and recruiters are constantly complaining about the alleged "skills shortage" (which is often used as a justification for shipping jobs offshore), why do they insist on ignoring so many alternative candidates?

    I see bad candidates from a number of countries when I interview. It's amazing how many "developers" can't develop.

    Luke Kolin wrote:While one can say that a degree might be a useful demonstration of persistence and effort, I'd argue that a far better indicator is for someone to actually start coding and creating a portfolio of software that they've created.

    Agreed. So far in over a hundred interviews, I've seen one portfolio and one laptop with a project on it.
    Moises Kline
    Greenhorn

    Joined: Jun 08, 2012
    Posts: 3
    Hi Derek, you can get an Associate’s in computer programming that would take about 15-20 months, then get some experience and then get Java certified. I’m not an expert, but it sounds alright a plan as any to me. You can get the Associate’s degree at California College of San Diego but you might be looking for something closer or online. If you’re still interested in venturing out into the sunshine state, read California College of San Diego reviews to get a better picture.
     
    I agree. Here's the link: http://aspose.com/file-tools
     
    subject: programming career advice question