|
<GrumpyOldGrammarNazi>
First piece of advice: don't end every sentence with an explanation point (!). It makes you sound manic.
</GrumpyOldGrammarNazi>
Software Zen: delete this;
|
|
|
|
|
|
Some food for thought:
Many of the best developers around (even on CP) - perhaps the best - never took a course in programming. It's just something they did and somehow managed to make a living doing it.
Getting in - that first IT job - is the tough one. As I usually put it: 25yrs old with 30yrs experience. That being said, in that job, you'll need to carve out just what is it you do.
Myself? I'll freely admit they could get a better coder than I with far more knowledge in all the various allied technologies. Why me? Because I can solve problems faster and better than any of them. And intuition. Those are things you really can't learn. You may have a different attribute to present. What can you bring to the table? You may not know, yet. A small productive group needs multiple skills.
In school or out, I presume your coding already because you can't help but do it. Discover what you're good at. Discover what you like to do. If you're really lucky, you can bet paid for doing them both.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
Thanks! That sounds ideal and I think if I were younger it may be a great way to go, not that I'm old but I'm at an age where I think I may get only one chance to retrain to this scale. Which is why I feel I need some actual qualifications + a decent portfolio under me to stand a good chance of getting a starting point!
|
|
|
|
|
|
If I hadent asked I would be loosing. My asking is me carving out possible paths for me to follow. Hence pushing forward and not loosing! But thanks for the input anyway
|
|
|
|
|
In programming, the only way to go is recursive.
.evisrucer si og ot yaw ylno eht ,gnimmargorp nI
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
|
I recommend getting a grasp on the industry first by doing an entry level job.
At 28 your odds seem better if you start by imitating people with more experience.
Going from "writing code" to "creating something with monetary value" requires some understanding of how to deliver work in general. You can build a portfolio, but chances are high it's going to be too narrow in scope to be of any use.
As an example: good portfolio's (in my professional opinion) show that you can tackle complex problems and solve them in a maintainable way. In practical terms, this means doing something that covers multiple languages (let's say python and C#), independently figure out who's prior work to combine (with proper references / attention to licenses!) to produce "a stable result" of some kind. And you would need to generate some kind of validation that shows your approach is valid / predictable. Full test coverage is probably the easiest way to go about that.
The catch is, that none of this is particularly easy without a frame of context on how you should present all of this. If you botch up the presentation, most people (= management) will simply fail to understand what you did, rendering the entire thing moot.
So.. this leaves you with trying to get a entry level job, so you can start figuring out how to report work in an a manner both management and fellow developers will understand. After about 3-5 years doing that, you can probably build a decent portfolio and get a better job.
In my experiences, the industry is still very much build around "trail and error".
A lot of people seem clueless. Some are full of sh*t. Others visit CodeProject and are alright I guess.
|
|
|
|
|
Thanks sounds sensible to be fair! I didn't ever expect to walk into a senior developers job just because I'm older. Starting from the ground up was always where I expected to be but I think my aim was to try and gain a substantial qualification first giving me enough knowledge to gain a better paid entry level job so I didn't have to take as much of a pay drop! There are quite a few training jobs local but they are apprentiships less than minimum wage and as much as I would love to jack my job and go for it I can't afford to take that pay drop! Which is why I wanted to try and do my HNC HND first then possibly my degree if time/situation allows! Do you think I would be better off doing this than going straight into an entry job with no quals? A lot of the better paid entry jobs require a BS in Computer Science and the better paid jobs at big company's. Does the industry view experience better than quals? Or is it all down to the company?
|
|
|
|
|
Saw this a bit late, but I still wanted to follow up:
Experience vs qualification requirements are different for different companies. (ikr :P)
Smaller companies will often hire you without qualifications if you look capable and present yourself at the right moment.
The dangers with getting a degree first, is that you're already 28, which means you will still need to get an entry level job (albeit with slightly higher pay) later on, when you're 30+. That's not an ideal situation for a few reasons: you're not gaining any experience in the meantime, you're not generating cash, and your chances of getting hired stay about the same. (more qualified on paper but also older)
|
|
|
|
|
As an employer and programmer with 30+ years experience, I think it is worth considering the following (from my perspective):
1) On the whole, employers want a balance of people who are very productive with specific technologies (which requires time and experience) and those who have natural programming skills, that is a mix of being able to think logically, some degree of numerate competency and able to solve new problems; (you either have these skills or don't).
2) Today, the software development landscape is rapidly evolving with new technologies / approaches appearing continuously. Hence, it is wise to place for a career of on-going professional development and being willing to adapt and take on new things. This is a personality trait, that is possible for some to develop if they do not have it.
3) There are some common threads and generic aspects of best practice (e.g. software life cycle, revision control concepts, issue management, testing strategies, release engineering etc. which you will need to be a good programmer.
Taking the above together, I would suggest aiming to fine a junior role / internship where you can gain experience of 3 from a mentor and that gives you the opportunity to use current in-fashion programming technologies. Assuming you have the natural programming skills from 1, this will allow you to become productive in something employers will find valuable. Then as your move one, seek opportunities that provide opportunity for development as in point 2, or better still in the role you are in at any time, track developments and where appropriate evolve what you do to use them.
|
|
|
|
|
Not sure what it's like in the UK but in the US it's difficult to get a good developer job without a degree. Those ads that say degree or 5 years? Don't believe it, they aren't treated the same. 5 years experience means any technical degree is okay, not just a CS degree, but when it comes to interviews the ones without degrees go to the bottom. Yes, still a chance but only if the top of the pile are too expensive or fail the interview.
As someone who's been on both sides of the interview table I do agree with most of the points above. Experience counts, especially in senior positions. Junior positions it's less of a factor, so the only tangible data to go on is...degree and subjects in school. Bootcamps? Anyone who's been a programmer for some time knows you can't really learn to be a commercial developer in 12 weeks. Maybe, maybe an entry level position where the company expects to train for the job. Expect pay grade to be competitive with janitorial services.
When you get to positions that ask for 10+ years experience degrees don't count for much as long as you have one in a technical field, unless it's a Ph.D. Problem with Ph.Ds is too much focus on academics, not enough on how to build code in an economical and profitable way. Good for a research position, not so much for engineering the deliverables.
There are other aspects to development work besides coding. What makes a prospect stand out are the communications skills. Can you explain your work in a way others understand? You'll be on a team; they have to know what you are doing. Some day there will be "the next guy" working on your code, will they be able to follow your logic? Do you even comment your code? If you say "the code is self documenting" in an interview you might as well stand up and leave. Managers who have to worry about continuity and maintenance know first-hand that particular cliche is a myth. Consider some classes on writing, an articulate and well-written report or manual will demonstrate you are more than just a code monkey.
|
|
|
|
|
I have been doing development for 20+ years and I have seen people or all sorts.
The first question you really need to ask yourself before you go any further is "Do you want to be a professional student?". We are not developers we are students! I am also in the US so the atmosphere here may not be the same as in the UK (so there is the gain of salt).
I would recommend at least a two degree. This is only to get by the people who think you have to have a degree to program. To that end do you have a partner that can support your family while you do your education full time. I worked full time while I got mine and it would have a lot easier if I had not.
After you learn one language the others become easier and easier to learn. It is the fundamentals of CS and the soft skills that are important.
I hope this 2 cents helps
Buckrogerz
|
|
|
|
|
Python is in demand. I have no idea why. See if you can write a new app in Python without looking at the book. Set a task for yourself that requires logic to solve. I have 12 programming languages and use 5 of those right now. It is not easy getting into programming and luck and skill are both needed. My son got a go no where job right after a two year degree and more than doubled his salary with another company after a year. That was luck and skill.
Leadership equals wrecked ship.
If you think you are leading my look behind you. You are alone.
If you think I am leading you, You are lost.
|
|
|
|
|
My only advice is that learning the "how" of programming is relatively easy. In fact it's expected that you be able to pick up a new language, IDE, VCS, framework etc. on your own pretty quick. But in my opinion what separates the men from the boys and allows you to go further faster in a software career (if you want to stay technical and not be a manager) is a strong theoretical background. And I think the "why" can be harder to learn on your own. For this reason I don't think I would recommend boot camps to someone who already can program a bit.
|
|
|
|
|
I am sympathetic to your cause. Being in the USA we have different terms for degrees, course tracks, etc., so I may not understand the details of your situation 100%. That said, here are some thoughts:
1. You are PLENTY young enough to retrain at any level. There will be some sacrifices, but they will be short term.
2. Focus on skills that are not easily commoditized. Python is great, but it's a tool that is easily learned, and is often used to create "throwaway" code for testing, utilities, etc. It's not really the basis for value-add on major projects. A fundamental understanding of computer science concepts will last your whole career and is not easily outsourced.
3. At least in the USA, bootcamps are quickly earning bad reputations. They teach the tools, not the fundamentals (which would really be impossible in such a short timeframe). Their hiring numbers are generally recognized to be suspect.
4. Unless you have serious personal commitments (like kids), I say dump your day job, and get yourself a genuine 4-year degree in Computer Science, Engineering, or something that will last for years. Borrow, skimp, starve, to do whatever it takes to pay for it.
Good luck!
|
|
|
|
|
You mentioned that you are working in horticulture. That's flowers right?
I would suggest look at your current situation, what can you see as a 'real world' problem within what you are familiar with.
People love to collect and retrieve information, for example, if you are still writing things on paper, create a simple but small application (web page, console app, whatever) that makes collecting that information easier.
It is much easier to apply ideas to what you are familiar with, it doesn't matter if there are 10000 applications/systems that does what you want to do, just start with something that you can associate with to make your problem solving and learning easier. After all programming is not writing squiggly packets or text, it's finding a solution to a problem.
People using your application/website/system aren't interested in if it was written in .Net, Java, Python, Ruby, C++ or any of the 1000+ programming languages available today, they want something that makes their life easier.
You mentioned you are learning Python, great! I started with plain old Turbo Pascal, then C, then VB, then C#, VB.net, Ruby, Pythion.... javascript...etc.. and so on..
The point is there is no real answer to "Which way to go" or what programming language to pick, they do have their different uses, but for the most part they do the same thing. (if, else, when, for, foreach, a=b+c etc..)
You are also guaranteed that you will learn more then one way of doing things, you will learn how to collect data, save data, retrieve data and present data, all in different languages.
Look at what you think is a problem, try and make life easier using whatever language you find more rewarding.
Once you can show something to a prospective employee where you took a simple idea and turned it into a simple solution it almost carries more weight than having 10 diplomas or degrees and no work to show for it!
Happy learning and happy coding!
Over..
|
|
|
|
|
Well B4DG3R, regardless of which language you choose to learn you will need to understand its syntax and correct usage, whether it's C++, Python, or even English.
You will find yourself to be eminently more employable if your English demonstrates your competence before you have even been asked about a line of code.
Finally, before anyone flames me, I really do intend this to be a helpful comment as opposed to a snide dig; all language benefits from a thorough check before submission.
|
|
|
|
|
That's actually very well said. To be perfectly honest if I am writing on paper I am much better than with a phone! For some reason I do have a very bad habit of short typing words and not double checking before posting. Thank you I will take it under my belt.
|
|
|
|
|
B4DG3R,
As others have said.. Get an internship or a gig that will let you solve some real problems. Hopefully that will be along side of a few people who are experienced so you can get a good feel for the structure and suck up as much knowledge as you can (that is really key.. read other peoples code, pick their brains, listen, try things, fail, repeat).
Aside from that try to get good at one or two useful things.. don't worry about mastering every aspect of everything and having a bunch of different tools you are proficient at right away. Once you're good at something small or niche you can get paid for that while advancing your skills at home, school, or through other gigs. For me I started with fixing peoples WordPress sites/websties (hardly programming). The beauty of that particular niche is that very non-technical people can create a site and mess it up easily or not have the ability to make fairly simple alterations. In which case they're ready to work with someone who may only know a little more than them but is more technically apt. This didn't directly allow me to learn from other people.. that came later after it became apparent I was good enough at this stuff to look for full time employment.
Then on the side learn something a little deeper and begin looking for more knowledge or ways to obtain gigs in the new area. Starting with websites wasn't the most fun but it allowed me to get into this world, get experience, and learn practical skills. After six years of trying to pick up as much stuff as I can, listening to people, accepting entry level pay, I'm now a senior MVC C# .NET developer at my work. We're doing mobile sites, console apps, windows services, web services, web sites, and all sorts of automation. The ability to transition into that really came from my entry level web experience and learning about interacting with databases and writing code that makes decisions, decisions that solved real problems for real people, troubleshooting http requests, structuring content, etc. Hope this helps. I think this is my first post on here, good luck!
-mwwallace8
|
|
|
|
|
Okay, you sound intelligent, and you seem articulate.
That's a good start.
There are great answers above this one. Get out there. Don't wait for the degree.
In capitalism, you can usually get hired if you are willing to take a few less pounds, and have some energy, and want to improve.
But think outside the box. Scour the job sources and find what is out there. Go interview with a few of the companies that are looking for people, and see what THEY value in your area.
I will warn you one thing. You are 28. You are beginning the cognitive decline phase. You are older for getting started in a world where most 40 year olds are getting out and into management. This is a young persons sport (overall).
Everyone is different, clearly. But this is the trend. Most of the old programmers I know are stuck maintaining 40 year old legacy code (like cobol). And most of the ones over 50 are HAPPY with this!
==
My point is that KNOWING how to program can have you be a manager or a programmer, or both. Be flexible in your goals and see what else might be there.
Like everyone else has said. Problem Solving skills are KEY. Experience is more important than education (these days especially).
HTH
|
|
|
|
|
As a 60+ I say your generalization of old programs is incorrect. I don't maintain legacy code, and have not been impressed with most of the "young" programmers I meet. There is a lot of soft skills required for software development that only come with experience.
|
|
|
|
|
I to went back to School at 30 for Programming. Am have a pretty good career going. That being said, why don't you get your education over with, and look for internships or "Work Terms" during your summer months. Better yet, get into a Coop program. I can almost guarantee that the working relationships you make in either one or all of these places, will lead you to be employed. I found in my case that I was hired before I even graduated. Plus, although you might make a small wage in your first work term, if you prove valuable, there's nothing from stopping you from asking for an entry level wage the next time you work for them. It's a great way to gain experience, setup a network,learn how to code in a professional environment and lay the ground work early for a full time position upon graduation. I have never had anyone ask about my education, other than wanting to know if I had a piece of paper. What you will learn in school will give you a foundation, even if the technology may be out of date. If anything it will teach you to learn on your own. Although you appear to have a good head start on that already.
Good luck you.
|
|
|
|
|
Everybody's story is different, I was still in school for my associate's degree when I got my first coding job. I had taken a couple classes in C# and just decided one day that," Yeah, this is fun, I can do this." I interviewed for an entry-level position shortly after that and managed to get it.
I think a lot of people will agree that professional experience outweighs the importance of having degrees or certifications, so the one piece of advice that I can say is consistently correct is to keep trying to get an entry-level job no matter your level of training. You can always keep training on your own time, but just lucking out and getting that first job is the springboard that will get your career going. Not only will you start getting that magical entity of "experience" you will learn exponentially quicker what skills are and are not useful in the real-world.
I also recommend joining local developer groups and trying to pick up a mentor, whether it be at one of these or at work. Having someone on your side can save you so much time. There's some warm and fuzzy feeling to be gained by grinding out problems on your own, but sometimes good, old-fashioned wisdom will get you really far really quickly (and hopefully in the right direction).
Have fun!
|
|
|
|
|