Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

unbelly

macrumors newbie
Original poster
Mar 1, 2012
10
0
Hi all!

Thought this might be a good place to ask. I'm considering a career change and have before this worked in archaeology and since my best assets seem to be my analytical skills and my ability in languages, I was thinking that possibly programming might be a good option for me. I do have to be honest and say that I have no love for computers or new gadgets, or anything, but I am good at learning, so i'm hoping this would compensate for that.

I'm sorry to be completely ignorant, but i heard that C# could be a good langauge to start off with, what do you guys think? I have no html or css skills yet though, so again, am i being naive starting with something like C#?

Also, if anyone can help me, what areas are there the shortages in IT? Say for junior level, graduate level jobs?

would be grateful for any advice at all here.
thanks a mil
 
Hi all!

Thought this might be a good place to ask. I'm considering a career change and have before this worked in archaeology and since my best assets seem to be my analytical skills and my ability in languages, I was thinking that possibly programming might be a good option for me. I do have to be honest and say that I have no love for computers or new gadgets, or anything, but I am good at learning, so i'm hoping this would compensate for that.

I'm sorry to be completely ignorant, but i heard that C# could be a good langauge to start off with, what do you guys think? I have no html or css skills yet though, so again, am i being naive starting with something like C#?

Also, if anyone can help me, what areas are there the shortages in IT? Say for junior level, graduate level jobs?

would be grateful for any advice at all here.
thanks a mil

+1 for what Miles said. IT and software development are completely different things.

Sadly, employers sometimes don't realize this so if you see someone wanting an IT person that also is a programmer I'd run the other way. (Or, in the case of a job posting near where I live I saw, an IT person who fixes and repairs computers, sets up networks, programs in C++ and sells jewelry when the store is short staffed). You'll die of stress in no time.

Also you don't have to love computers or new gadgets and such. That whole thing is usually a myth.
I work in IT and none of us really care about specs, new hardware, etc. Thats usually a niche system builder type of thing.
 
Unless you're doing this in order to have a more steady income I'd suggest you look around your own field for inspiration.

Determine possible useful combinations of hardware and software tools that would be useful in the field that you are versed in.

Once that is done look at the hardwares development tools for that platform. That'll help set a direction of what to learn.
 
I'm an IT grad, while IT can lead to development and software positions, particularly web development, programming and engineering are more in the computer science and software engineering fields. If you want to pursue degrees in those, you will need to be very good at math, as well. IT has lower math requirements usually, but if you want to know, IT specifically usually deals with things like customer service/technicians, database management, server/network setup and management, hardware/software implementation and management, and web/web application development.

If you want to try to teach yourself, start reading up on books on the subject. If you want to get started with programming, then I highly recommend you start with Java, which is a pretty entry-level language, and then after you get a handle on that then try C++, which is old but still highly relevant today. You could jump right into C++, but it can be pretty daunting, especially for someone new to the technology field.
 
+1 for what Miles said. IT and software development are completely different things.

Sadly, employers sometimes don't realize this so if you see someone wanting an IT person that also is a programmer I'd run the other way. (Or, in the case of a job posting near where I live I saw, an IT person who fixes and repairs computers, sets up networks, programs in C++ and sells jewelry when the store is short staffed). You'll die of stress in no time.

Also you don't have to love computers or new gadgets and such. That whole thing is usually a myth.
I work in IT and none of us really care about specs, new hardware, etc. Thats usually a niche system builder type of thing.

-1 for chrono1081. Most IT organizations have many different groups that do different things. For example there are jobs within IT that related to infrastructure such as Network admins, there are database analysts (dba), Systems Analysts (sa), there are people who work just with storage, there are people who work with nothing but security, etc. There are also many, many software developers. Companies generally do a mix of integrating third party software and middleware along with custom software development for very large applications. The term IT is a very broad term and there are many very distinct different careers within IT. Just because you who didn't have a particularly good career doesn't mean it's a bad path for others.
 
-1 for chrono1081. Most IT organizations have many different groups that do different things. For example there are jobs within IT that related to infrastructure such as Network admins, there are database analysts (dba), Systems Analysts (sa), there are people who work just with storage, there are people who work with nothing but security, etc. There are also many, many software developers. Companies generally do a mix of integrating third party software and middleware along with custom software development for very large applications. The term IT is a very broad term and there are many very distinct different careers within IT. Just because you who didn't have a particularly good career doesn't mean it's a bad path for others.

No offense but -10 for you. You must never have worked in IT if you think Software Engineering is part of IT.

In most real companies, its part of engineering. Just because you can lump everything involving working with a computer doesn't mean you should.

Not to mention I'm not sure where your personal attack in this phrase: "Just because you who didn't have a particularly good career doesn't mean it's a bad path for others." is coming from. I never said I hated my job.

The OP is clearly mixing IT and software development, just like you are even though they are completely separate things.

Go google IT jobs, then software developer jobs if you don't believe me. Both have very very different qualifications.
 
No offense but -10 for you. You must never have worked in IT if you think Software Engineering is part of IT.

In most real companies, its part of engineering. Just because you can lump everything involving working with a computer doesn't mean you should.

...

The OP is clearly mixing IT and software development, just like you are even though they are completely separate things.

Go google IT jobs, then software developer jobs if you don't believe me. Both have very very different qualifications.
Yes they both have different entry requirements, and yes they are normally different departments but for quite a lot of companies (especially SMEs and those with a primary business market that isn't software development) they are both encompassed under the IT heading and there is the possibility of moving between IT specialisations.

Bigger companies are most likely to have a separate engineering department, but as techconc pointed out, they are also most likely have a separate operations department, end-user support department, IS department etc...

As for the OP, hitting C# to begin with shouldn't be too painful, it is very similar in syntax and style to Java which is often used to introduce students to object-orientated programming. Microsoft also provide a free IDE (Visual C# Express) that you can use to follow along a book/online tutorials.
 
No offense but -10 for you. You must never have worked in IT if you think Software Engineering is part of IT.

I've been in this game a long time and seen software engineering done within IT groups, and be the soul purpose of a company creation and therefore separate from IT. It varies. Hell, Software Engineering is a bogus title anyway, compared to real engineering disciplines.
 
I've been in this game a long time and seen software engineering done within IT groups, and be the soul purpose of a company creation and therefore separate from IT. It varies. Hell, Software Engineering is a bogus title anyway, compared to real engineering disciplines.

I've been at this game a long time too and have never seen them lumped together, nor have any of my coworkers. I'm not saying it doesn't happen, but for people to tell the OP that IT and software engineering are the same is misleading.

Especially if he goes job hunting, clicks on IT jobs and sees that they're expecting desktop/server support, network administration, etc.

Also I disagree that software engineering is a bogus title, its a very complicated process to build a piece of software and requires a ton of research, planning, testing, coding, etc, just like building a physical structure.
 
A good video outlining what Software Development is like. Its not entirely 100% accurate but its pretty good if you have no programming background and want to know what Dev requires.

http://penny-arcade.com/patv/episode/so-you-want-to-be-a-developer-part-1

Python is a good starting language, and there is a lot of resources on the web aimed at beginners. http://code.google.com/edu/languages/google-python-class/


I've been in this game a long time and seen software engineering done within IT groups, and be the soul purpose of a company creation and therefore separate from IT. It varies. Hell, Software Engineering is a bogus title anyway, compared to real engineering disciplines.

I think you want the word Immature. Software engineering is a much much much newer practice than the big 3 engineering disciplines.

There is a way to mathematically define, specify and verify software. It is however very expensive and time consuming. Its also limited to Model Code at the moment. GUI formal methods are still being researched and can't really be used in production.

http://en.wikipedia.org/wiki/Formal_methods
 
Last edited:
Thanks everyone! Really hadn't expected such a great response already.

Also, I had no idea that programming is not necessarily directly associated with IT, so that's really helpful in terms of how I look at the sector. I shouldn't have been so loosely lumping them together.

And from what you have said, it confirms for me the IT end of stuff, ie system management, hardware, etc. would definitely not be for me.

I'm going to try out the programming- for someone that mentioned this- yes, it's absolutely for a steady income. I did get a part-time job with my language skills but translation is not for me, well not yet, maybe in years to come.

Will take that advice and leave the C set for later. Thinking to start with Python and then go onto Java? Sound like a good plan?

Sorry but I do have another despicable question! What type of role/type of work can I aim for once I have these skills and some mini projects to show for myself?
Are there definitely shortages of people with these skills? I am hearing all the time (in Ireland) that there are a lot of jobs going unfilled in the IT sector, but they never specify what exactly.
 
Will take that advice and leave the C set for later. Thinking to start with Python and then go onto Java? Sound like a good plan?

Python is a good choice to start with. Remember that languages are just tools for you to use for your craft. The most important thing I can share with you is this:

You WILL hit roadblocks. Not unlike solving a jigsaw puzzle. Do not quit until you solve it. Instead of stressing out about it. Consider it a challenge and enjoy the journey finding the solutions to whatever problems you are encountering. THIS is the most important tool I have "purchased" in my 20 years of being a software engineer. May the force be with you...
 
It's difficult to get into IT without work experience. Employers seem to value work experience over qualifications ... in the UK anyway. Not sure what it's like elsewhere.

People are saying IT isn't the same thing as software development, but where I've worked before developers are part of the IT department. Maybe that's why people get confused. ;)
 
Are there definitely shortages of people with these skills? I am hearing all the time (in Ireland) that there are a lot of jobs going unfilled in the IT sector, but they never specify what exactly.

That's just the usual crap. Like in germany, where they say that there is a shortage of engineers, even though there are still plenty of unemployed engineers, in particular people of age 45+. The problem usually is that companies don't want to invest a few month of training for an engineer to make him a specialist in the required area, but instead they expect the government to provide those trained specialists through changes to the education system. The latter of course is impossible because most industries are moving too fast.

You probably have to look at job ads and contact companies to figure out what they are looking for. Since you're not exactly an expert in programming, you could try to find something where your language skills will be useful, at least as an entry point.
 
Archeology to Software Development

I have background studies in Anthropology / Archeology AFTER I had a career in IT as a systems administrator (UNIX, Microsoft) at Motorola. I am now moving into software development.

Like previous posts noted, there is a world of difference in training and in the real world between IT and Software Development.

The best thing about our studies is that it preps you for the planning and discovery aspects of software development, like User Interface Design (UX/UI/Prototyping) or Documentation (tech docs to tech grant writing). I started in those areas as an entry point while I am learning to code.

Ethnography-based research is the cool way for businesses like Philips and Apple to research and design the look and feel for a target user base. In short, I am having a lot more fun than I did in IT or Anthropology for sure.

The above advice to pick up multiple languages is great. I recommend C, Java, Objective-C for desktop and mobile software. Python as well if you have never coded before.

Ruby, PHP and HTML/CSS/JavaScript are used to setup prototypes for software and website ideas in most startup companies I have contracted with. And if you want to impress the startup crowd, learn how to use the terminal and UNIX on the Mac.

A good, starting UX book: Communicating the User Experience
Free Axure UX Software for students: http://www.axure.com/buy
Big Nerd Ranch books for iOS Development: ALL
 
I think the IT/Software Engineering paradigm is easy to argue over because there are career paths that fall under both and most devs tend to be biased against what they imagine as the usual IT lead software development: terrible web "apps" that only run correctly on IE6 and Windows XP SP1 (because something hacky they did was broken... er fixed... in SP2). While this is obviously the case sometimes (like at my local community college), there are in fact IT Departments that turn out honest and decent to quite good software.

Good DBAs for example are programers as SQL is a domain specific programing language and a sufficiently sophisticated database with numerous stored procedures and schemas is a software package in and of itself. At work we have to interface our 3D modelers and architects with the City of LA's oracle network which is as complicated and sophisticated as any software title.

At work I usually develop in Silverlight which, for those who don't have Netflix (self depreciating Silverlight dev humor), is Microsoft's version of Flash. While my code is almost always intended for forward facing apps used by consumers in the wild, the majority of Silverlight devs tend to work on either media players or LOBs (Line of Business software). These are apps that almost never see the light of day and get used by a smaller number of people for critical business functions, i.e. filling out insurance paperwork or doing financial calculations.

Most LOB developers tend to either be freelancers or essentially work in an IT department because they don't work at a dev house. I think its also fairly specific to the MS stack. I don't think there are too many people specializing in LOBs for Macs (since it would make more sense to do a web app at that point but I digress). In my case, even though my work is in fact a product, I happen to work in the IT Department DUN DUN DUUUUN :D.

I think Joel Spolsky creates a good visual of what this type of work looks like:

From "A Field Guide to Developers"

The big investment banks in New York are considered fairly tough places for programmers. The working conditions are dreadful, with long hours, noisy environments, and tyrannical bosses; programmers are very distinct third-class citizens while the testosterone-crazed apes who actually sell and trade financial instruments are corporate royalty, with $30,000,000 bonuses and all the cheeseburgers they can eat (often delivered by a programmer who happened to be nearby). That’s the stereotype, anyway, so to keep the best developers, investment banks have two strategies: paying a ton of money, and allowing programmers basically free reign to keep rewriting everything over and over again in whatever hot new programming language they feel like learning. Wanna rewrite that whole trading app in Lisp? Whatever. Just get me a goddamned cheeseburger.

Some programmers couldn’t care less about what programming language they’re using, but most would just love to have the opportunity to work with exciting new technologies. Today that may be Python or Ruby on Rails; three years ago it was C# and before that Java.

Now, I’m not telling you not to use the best tool for the job, and I’m not telling you to rewrite in the hot language-du-jour every two years, but if you can find ways for developers to get experience with newer languages, frameworks, and technologies, they’ll be happier...

This is kinda how my job works except I get a lot lower pay and in exchange work with nice, friendly, architects (they eat mostly salads). My one year contract is up in two months & I don't plan on being there past that (I'd like to work in a "real" dev house or a few months before going back to school). It can sometimes be a little hard to stay motivated when writing something you don't think will see the light of day, but generally it gets evened out by the fact they don't care if I write it in C#, C++, F#, WPF, MFC, WinForms or in pretty much any other technology that can integrate with their existing Silverlight/Oracle/SQL Server environment. My buddy got to rewrite a GIS web tool in JQuery from the existing ExtJS because of the same mandate (and because he was otherwise bored). Its a very different setup than somewhere like the Adobe Photoshop team.

Anyways, just my experience.
 
I think you want the word Immature. Software engineering is a much much much newer practice than the big 3 engineering disciplines.

Saying software engineering is immature is an understatement isn't it? As your http://en.wikipedia.org/wiki/Formal_methods (which has it critics too) link indicates, cost is a big issue and therefore short cuts are taken. Is engineering occurring? Sure. To the repetitive nature of classical engineering? No. Even if a day comes where two software designers come up with an exact same design, the coder will have the last say on the final product. Do bridge builders have that flexibility? So far, attempts to get rid of the coders has failed.

My real pet peeve is people calling them selfs Software Engineers. That is the title I should have referenced. D'oh! Software Engineer is a bogus title because many if not most people who use it do not have an engineering degree or engineering accreditation. The ones that do, usually have an alternative engineering degree, often electrical.

Do the people who graduated from college or university with a title of Software Engineer deserve the title of engineer given the immature state software engineering?


Back to the OP...

As mentioned, programmer is the ground floor in the software world. It has become tougher to get in without a related formal education but can be done via some creative methods. One method is to work on open source projects. First though you need to find out if this something that actually interests you. You've said your going to try Python which is fine. Dive into a language and if you find that interesting, check out some books on software development other than programming books. Perhaps your local library will have some good titles.

You may not have a love for computers, but might find that solving software puzzles is enjoyable.

Good luck.
 
Saying software engineering is immature is an understatement isn't it? As your http://en.wikipedia.org/wiki/Formal_methods (which has it critics too) link indicates, cost is a big issue and therefore short cuts are taken. Is engineering occurring? Sure. To the repetitive nature of classical engineering? No. Even if a day comes where two software designers come up with an exact same design, the coder will have the last say on the final product. Do bridge builders have that flexibility? So far, attempts to get rid of the coders has failed.

Really you're using the fact that something has critics as an argument against it? :rolleyes: Types of bread has critics against them, it is human nature.

The Coding premise is also actually false, Formal Methods and Specification Languages have been able to generate code for a while now. For example IFAD VDM will generate C++ code from the Z specification language. There are many more projects that will generate classes and tests from specification languages.

Yes formal methods is time consuming, but then is designing a bridge.

My real pet peeve is people calling them selfs Software Engineers. That is the title I should have referenced. D'oh! Software Engineer is a bogus title because many if not most people who use it do not have an engineering degree or engineering accreditation. The ones that do, usually have an alternative engineering degree, often electrical.

You should've said that in the first place. Isn't a core skill of a Software Developer succinct communication?

One does not need be a BE, IPENZ etc to be an engineer. One is an engineer when they apply Maths, Science and Culture to solve problems.

Do the people who graduated from college or university with a title of Software Engineer deserve the title of engineer given the immature state software engineering?

Yes, and your "opinion" of whether or not what is and isn't an engineer should not and can not diminish the student's achievement. They are a Software Engineer, regardless of the Industry's state by definition, certification and by practice. By contrast a BE student can also work as a Scientist. A Math student can be a Computer Scientist.
 
Last edited:
Saying software engineering is immature is an understatement isn't it? As your http://en.wikipedia.org/wiki/Formal_methods (which has it critics too) link indicates, cost is a big issue and therefore short cuts are taken. Is engineering occurring? Sure. To the repetitive nature of classical engineering? No. Even if a day comes where two software designers come up with an exact same design, the coder will have the last say on the final product. Do bridge builders have that flexibility? So far, attempts to get rid of the coders has failed.

My real pet peeve is people calling them selfs Software Engineers. That is the title I should have referenced. D'oh! Software Engineer is a bogus title because many if not most people who use it do not have an engineering degree or engineering accreditation. The ones that do, usually have an alternative engineering degree, often electrical.

Do the people who graduated from college or university with a title of Software Engineer deserve the title of engineer given the immature state software engineering?

Good luck.

Many Software Engineering and Computer Science programs are ABET accredited just like other engineering and applied science disciplines. I think you are confusing job title and professional title. Someone with an accredited engineering degree is not really an engineer until they become licensed as a Professional Engineer. Many Electrical and Computer Engineers can have successful careers without ever becoming licensed. Do you want to diminish their jobs and say they are "bogus" too? Without that professional license any Engineer job title is just as "bogus" as Software Engineer.

A practicing engineer is still an engineer and deserves the job title Engineer. The job title is unregulated, but the professional title is very different.
 
Last edited:
Okay, taking the advice here, I'm going to throw myself into Python, look at Java and see if I truly like this stuff or not. I can access a free course in software development as well, which in a case of good luck and timing, starts in two weeks, and it goes through software development and also programming, and isn't overly intensive- it's for beginners. It's also going to be a way for me to see how I match up to others in the class. I'll soon find out whether I'm cut out for it or not.

Thanks for all the advice! And thanks for the well-wishes, a la may the force be with you :)
Go n-eiri an bothar leat, a chara. May the road rise with you!
 
Online classes and videos to learn basics of computer science and programming

Unbelly,

first of all you need to find out - do you like programming?
Second you must learn some basics of Computer Science.
The straightforward way to solve these two problems is to take good intro class in computer science and write a few dozens simple programs.

You can join following class:
CS 101 with Python from udacity.com: BUILDING A SEARCH ENGINE
(Learn programming in seven weeks starting February 20th 2012
We'll teach you enough about computer science that you can build a web search engine like Google or Yahoo!)
http://www.udacity.com/overview/Course/cs101

Alternative way is to watch videos and do assignments following one of these classes
MIT Course 6.00: Introduction to Computer Science and Programming (Python)
http://ocw.mit.edu/courses/electric...o-computer-science-and-programming-fall-2008/

Stanford CS106a (Java)
http://www.youtube.com/playlist?list=PL84A56BC7F4A1F852&feature=playlist-comment

To learn basics of Python you can use this online book.
http://learnpythonthehardway.org/book/

Good luck in your journey.
 
Those are fantastic links, WebMongol, so thanks a mil. Starting with the MIT class you referred me to and of course going to do the software development course for beginners that's starting in a school nearby me very soon. Will soon see if I'm cut out for it!
 
Will soon see if I'm cut out for it!

Attitude. Attitude. Attitude. Treat every problem like a murder mystery in a movie. You are the lead detective. Something killed something. It's your job to find out what and why and bring it to justice. Dive in and enjoy it... ;)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.