The Lounge is rated PG. If you're about to post something you wouldn't want your
kid sister to read then don't post it. No flame wars, no abusive conduct, no programming
questions and please don't post ads.
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.
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!
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.
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!
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).
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.
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).
One thing I would suggest. Is get involved. Local user groups and Code Camps are great places to meet contacts. Write software for nonprofits, or find a local small business and solve their problems free. Afterward blog about the experience. Writing code is really about learning, and the best way to learn is to do.
I've managed to support my family for 30 years by being a language specialist, specifically C-based languages (C, C++, C# and Java). C of course is passé, you can skip that one. Once you're employed with these skills you can easily teach yourself other technologies du jour.
I believe you need to choose one of 2 paths: primary languages OR web technologies. A language specialist is typically paid more (in large companies) but times are changing. Either choice will make you marketable.
It sounds like you are already off to a good start.
However, here are a few things to note as you progress...
Never use accepted word conjugations such as "wanna", "gonna", "kinda", etc. This is terrible and improper English and will be noticed right away in anything you write for a prospective, professional position or to a person in such a position of hiring you may contact directly.
This new form of sloppy English is becoming the norm on the Internet and demonstrates a lack of concern for precision, which the software development field is constructed of.
I completely agree with the commenters here that suggest you continue your studied part-time. However, if you want to remain in the technical areas, depending on the expectations of the nation you are living in, certifications or two-year university courses should be more than enough to get you into a technical position if you can demonstrate other qualifications. If technical management is your goal, than you will most likely require at minimum a university degree.
I cannot speak for technical management in Europe but in the United States it is most often a morass of arrogance, technical know-it-alls, and incompetence. From the standpoint of one who has spent 42 years in the technical trenches, your ability to survive in the profession is much better in the pure technical areas than in management.
I would stay away from "Boot Camps" for learning technologies. They are often just "certificate factories" and have been recently written up as such. They do not prepare you for the real world of software development and engineering.
You are far better off becoming a self-taught developer. Because we have to wrestle with finding solutions more on our own, such experience tends to make you a superior developer in the long run. You can learn just as much from a good book and doing your own development projects than you can from an accelerated course.
I have taken quite a few courses before "Boot Camps" became popular that were similar in nature and I found most of them to be not only quite tedious but worthless compared to what I was teaching myself.
Web development these days sounds very exciting to those who have never done it professionally. However, there are a lot of downfalls to entering the profession from this avenue.
Web development today is a complete mess from the Microsoft side of things as it is predicated on what tools you use and not how well you can develop a good experience for the user. Take look at the many sites on the Internet today and you see an emphasis on feature laden sites that are nothing more than eyesores and annoyances than anything credible a serious user would be bothered with.
If you want to go into web development, even though I am a Microsoft specialist, I would advise that you take the Java Community route, which is far more stable than the current Microsoft environments.
Python has its own techniques of doing web development, which seemed to have followed the Java community style to my own understanding but it is not nearly in as much demand for such development as either C# (ASP.NET MVC) or Java itself.
V... Considerations for employment...
Try to stay away from the major corporations. The world is in a large state of terrible trauma from the multi-nationals and the governments they are entwined in. Benefits are being decreased on a regular basis and people are increasingly being exploited.
To this end attempt to find work in the smaller companies in the development areas that you eventually choose to work in. You will find a greater camaraderie with your own generation as well as older personnel that still want to work on the leading edges if these companies are willing to hire them.
Job security today, which was once the province of the large corporations is increasingly becoming a thing of the past while individual capability is becoming more important to long-term survival.
The smaller companies will instill a sense of confidence in yourself as you manage the somewhat more technically diverse responsibilities that are not found in the larger companies.
VI... Striking out on your own...
This is the most difficult but the most advantageous avenue to professional survival that one can contemplate.
The difficulty of doing this has been directly affected negatively by the Open Source movement where everyone today now expects all software to be free.
Well guess what? No one has ever survived on "free".
This development in the Open Source Community was an outgrowth of the Java Community, which was initially promoted by students, academics, and scientists.
The results have been the destruction of a large cottage industry where software developers and engineers could develop their own products and make livable earnings from such small, cooperative companies of developers.
Nonetheless, if you can find a product idea that has potential, consider getting a small group of your colleagues together and building such a product, though you may promote it as freely available, it can also be serviced for fees that would be acceptable to companies using your software.
Some small development companies have done very well in this vein.
If however, you want to go into independent development, the one niche where you can still make earnings on your software is the game industry. "Free" hasn't completely engulfed that area of development since the work is so difficult.
Always wanting to enter that area of development myself to create historical war games I am doing that now at my advanced age by studying the Unity3d development environment. I may not make money but I am now studying areas if technology that have always interested me.
VII Do what you love...
Do not decide your future based on what you think the market wants but what you want. Working in a technical area that is not your cup of tea will see you tire of it and eventually leave it just out of your own frustration.
Find the area of technology that interests you and that you are prepared to devote your studies to to. You will always excel at something that interests you over something that doesn't.
If you want to work with Internet development than do what it takes to become a valuable asset to a development team. If it is game development you want to do, don't be frightened of the more difficult technologies involved. It is very difficult but if that is what you want than go for it.
Anything I have recommended so far can be mixed and matched with a good degree of common sense towards any goal you choose to attain.
If you want top extend this discussion, feel free to write me at my email address below...
Sr. Software Engineer
Black Falcon Software, Inc.
I'm a developer and have been professionally for 12 years, and I've been hiring and recruiting developers for the past 8.
I think you first need to define what sort of role you'd like to end up in. If you want to work for a large company (a Google or a Microsoft) then a degree is definitely necessary. If you want to work for a small company then not so much.
Assuming you don't mind too much where you work (at first, at least) then I'd say it's far more important to be able to demonstrate your abilities. A degree is good, but I've met plenty of developers with a degree who couldn't code, and several without degrees who are experts.
If you can demonstrate your abilities through real world examples then people will generally take notice. For example, you could write some apps and release them to the stores, or contribute to some open source projects.
What kind of programming do you seem to like? There are lots of different areas you could focus on with their own 'popular' languages.
I've been building/programming computers since the late 70s and have actually written very few Windows programs. I'm into low level programming where I have pretty much complete control of the processor and peripherals. I use RTOSes(also written a few of my own), USB device stacks, DSP algorithms, etc. You don't have to be a Windows programmer, there are other options out there.
Choose one among several ways that lead to the cloud.
1. Pick a cloud provider ( Amazon and Microsoft are the two biggies )
2. Learn their infrastructure as a service and platform as a service offerings and develop small applications with them ( You can have free credits of their cloud offerings ). Keep it public on git so that it reflects on your portfolio
3. Host your own website/blog on their free offering.
4. Build your resume with their taglines and start sending to small companies who are looking for cloud talent. See how you fare, come back and learn what you are lacking. Keep Repeating step 4 until you get your first gig.
5. Once you get your first gig, do not stop learning, keep building your knowledge.
I have to tell you it is a slow and pain(ful) process till the time you get your first gig.
I suppose I'm well late with my advice but here are my thoughts.
Programming is an unusual profession because it doesn't necessarily require qualifications to gain entry. Experience counts for an awful lot. I would say pursue your studies (HNC) at night school - it is what I did - but now you must focus on gaining that entry.
I don't think a lack of experience has to work against you, it could be an advantage because you will be so much cheaper. At 28 you ought to be able to present yourself as a reliable and mature person that an employer will be able to rely upon.
Having said that, you may find that you have to attend a lot of interviews before you get anywhere. Would be employers are incredibly cagey and interview practices are notoriously subjective. At one point in my career I did something in the order of 40 interviews before I made any headway. It probably won't be that bad for you because I had a number of mitigating circumstances, but even so don't be disheartened when a would be Senior Dev pulls your wings off because you didn't 'get'his pet problem.
Agents can be tricky to work with, but a good one can really make the difference. Just be careful that they are telling the truth about you to a prospective employer.
To begin with I would suggest you may be able to pick up short term contracts at a low rate. Possibly you could discuss an extended probation period with a full time employer. Working from home might be an option. Be careful of picking up work from places like People Per Hour. Make sure you carefully scope any work. Expect to have to travel, but you might be surprised how many local firms there might be. You might also find that there are local firms that might want a bit of IT done on the side for cheap. You may also consider testing automation (Selenium, simulators) as a route into development.
In your situation I would avoid any jobs that are directly related to supporting an existing product. That will come later on anyway and there won't really be the opportunities to flex your new development muscles in the way you would like. Don't get me wrong, support can be a very challenging environment but it often doesn't get the respect or kudos it deserves. If you wind up as that support engineer there is a very real possibility that you will be passed over on the really good development opportunities.
Finally, remember: software development requires confidence in yourself and your abilities. If you lose that confidence you're toast as a developer. Never take criticism from other developers to heart - software developers never agree on anything and are always right.
Never too late! I'll take every piece of advice I can get at this point and thank you for taking the time. I have looked around the local area and there are a surprising amount of positions in development around! A hell of a lot more than I expected there to be. A lot of apprenticeship type position aimed at school leavers which are very low paid and quite a few junior dev positions 25 - 30k, my problem at the minute is I don't know enough for a junior dev position in my opinion and I can't afford the pay drop back to an apprenticeship! I'd be taking a pay cut to a junior position but I always expected that! I'm gonna continue with my studies for a couple of years I think and then try and get into an junior level position. I want some more knowledge behind me before I take the leap I think but I am going to keep my eyes open to see what's around.
Some kind soul recently gave me a CD of Norton A-V, and I have found it incredibly useful.
I recently got one of my DSLRs back from service, so I though I should check the micro-adjust settings in case they had been changed. I needed a detailed target for the centre A-F point, and I realized that the bright yellow and black CD inside the case would make a nice high contrast subject so I wedged it into one of the old scaffolding holes in the outside wall of the house. I was able to re-calibrate the micro-adjust of the appropriate lenses in no time at all.
A most satisfactory result - but wait - it goes further in Norton's incredible functionality.
I realized that with spring coming up, the pigeons would be back nesting in the walls, which attracts snakes who like the eggs. So - time to zero-in the 'scope on my air rifle. Again, the CD did sterling service as an aiming mark, though I fear for the repeatability of the exercise.
So, all you Norton nay-sayers, Norton A-V is clearly an excellent and versatile product.
I remember my first and only use of Norton...
I was about 15 at the time, so it's almost half my life ago.
Thought I'd install Norton as it was THE AV program to have.
As soon as it was installed it kept giving me pop-ups of all programs and processes that tried to do ANYTHING on my computer.
After clicking away about 100 pop-ups I decided to uninstall it right away.
Unfortunately, one does not simply uninstall Norton[^].
I started early in the evening (about 9PM) and it took me until about 4AM before I had it completely removed it from my computer...
I'd probably do that a lot quicker now, but I wasn't as tech-savvy back in the day
I remember my first and only use of Norton...I was about 15 at the time, so it's almost half my life ago.
Then it's a shame that you're not old enough to remember what a great and glorious thing the Norton Utilities were, before he sold the company to... some jerks; I know nor care not who.
Back in the DOS days, the Norton Utilities (which he originally wrote for his personal use, but later released as a product) were like a lifeboat in an ocean of commands that you had to type to achieve the same ends -- but which you could only type after God-knows how long of research into how it all worked, which was not so easy, back in the early days of the Interwebs.
I've always found it upsetting that his name has been so besmirched by the cretins who bought his work from him.
I wanna be a eunuchs developer! Pass me a bread knife!