PDA

View Full Version : Would I like software developing?




laserbeam273
Mar 27, 2012, 10:41 PM
I'll try avoid rambling but can't promise anything - I've been thinking about my career path heaps lately so I got a lot of thoughts going on! If you aren't interested in the long story then skip the first few paras.

I'm currently a uni student (University of Sydney) roughly halfway through a double degree in Civil Engineering and Commerce. Thing is, I've ended up getting a job at an accounting firm where I do software applications (making fancy excel spreadsheets), and I'm really enjoying it. I've also started getting ideas of some programs I'd like to develop, but I really don't have time to pursue them with my schedule.

I've actually signed up as an iOS developer (note my ideas are across both the OS X and iOS platforms), and have played a little bit with XCode. A lot more complicated than something like MATLAB! Recently I realised all the applications that I've received as a developer, including Instruments. Wow that stuff looks awesome, and really looks like something I'd enjoy doing. Optimising code to work on multicore systems? Bring it on.

Given this, I'm considering changing over to BIT and BCom - hopefully I'd have a good portion of BCom done and they wouldn't make me redo it with the newer classes. I'd basically then work my schedule so that I have time to pursue my ideas and still get my uni degree done.

In the long run, I think I want to run a small (or medium/large!) company of technical experts. I'm thinking analysts or software developers, or both. I think that'd be awesome, and something I could do well at.

So from uni, I think my BCom (Finance), and experience at the accounting firm will give me a firm groundwork of understanding of the business world.

At the moment, B.C.Eng is alright, but I'd like to give my software ideas a run, so BIT would be better. Also think I'd major in computer science rather than information systems, as I do want to get very skilled technically re. computers. Thing is, my current double degree is 5 years and I'm already 2.25 years in, and doing the switch would mean another 4-5 years *shudder*.


Anyway... what's it like developing software? Here's a couple traits/interests of mine, would being a software developer suit me?:
1. I'm big on efficiency
2. I like processes (A -> B -> C OR D etc..), and making them more efficient!
3. I need to innovate. Thankfully I've already been doing a bit of that at my accounting firm. I'd never want the job of going through an old program and making it marginally better, I want to do cutting edge work.
4. I'm fairly social, and like managing. I'd be comfortable as a team leader.
5. I like design. From a practical perspective, which I then believe should tie in with an asthetical perspective. Solutions should be efficient, elegant, simple, and rock solid.
6. I like the idea of design road networks (spanner in the works there!), in particular projecting them through an optimised, perfect route. Usually my thoughts about this relate to an elegant yet powerful software solution.
7. I want to get extremely good at something very technically challenging, then use it in a very applied way to do all of the above!

Thanks to all who read all this, I'm looking forward to hearing your responses.



mfram
Mar 28, 2012, 12:50 AM
Will you be good at programming? Maybe. Only you can tell us after you try it. I'm a professional Software Engineer and have been doing this for a long time. Just to get an idea, I first started programming when I was about 11 years old and have practiced ever since. I got my B.S. degree in Computer Science and Mathematics.

I believe the most important skill is logical thinking. After you write some code, imagine all the scenarios. What are the possible cases? When your program outputs something you don't expect, how good are you at figuring out how the computer got there? Where can errors occur? I think I'm pretty strong at this trait.

The next most important skill is learning how to break down a complicated problem into parts that are more easily manageable. In the real world, the problems are bigger than any one person can manage and you'll need to work together as a team to figure out who is best to work on each piece. When you have your piece, you'll have to "visualize" how to solve your problem. This skill is more difficult for me at times; I've worked with others who are stronger at this than me. That's OK, everyone has their strengths and weaknesses.

Honestly, I don't feel efficiency is a very important part of programming anymore. The hardware just keeps getting faster and faster. A much more important characteristic of modern software is maintainability and flexibility. Even at the cost of efficiency. How well can you adapt previously written software to another problem? How well can your program be adjusted as the requirements inevitably change? These kinds of questions lead to the concepts of Design Patterns. I'm not sure what "aesthetics" would mean in programming other than maybe helping in maintainability.

Maybe you could get some kind of minor in Computer Science. Take the basic classes in algorithms, design, and data structures. Those are the "rudiments" of Computer Science and will surely be a part of a minor curriculum. If it works out, you could always look at C.S. in grad school or something.

Learning all of this takes time and practice. If you want to get better at programming, the sooner you start getting your feet wet practicing the better you will become.

If you like working with teams and leading, then another possibility is the world of program management. Good program mangers have a technical background but may not be elite "coders". They at least have to recognize and grasp the technical issues the engineers are running into. To go down this path, a degree program in Software Engineering would be more appropriate. Learn methods on software team project management (Agile, Waterfall, etc). Understand the types of Software Tests that are needed and how defects are tracked. It's a different type of curriculum than Computer Science, but still technical.

laserbeam273
Mar 28, 2012, 07:17 AM
Thanks for the reply. A lot of interesting points there for me to consider.

For me, the whole thing about efficiency is more "using programs to make human tasks more efficient", rather than "making programs as resource-efficient as possible". The latter is still an interest, but I think the former is most prominent for me. I would think it safe to assume that the former is extremely relevant these days.

I think that logical thinking is something I'm decent at. Also visualising the overall method. I've done a small bit of programming at university and also at work, and I guess it's something I find... easy, though I'm hesitant to say that as I realise I'm only taking on simple tasks.

One thing that I think would be helpful is if I could spend a day working/watching a software developer. Ultimately, a job is a day-to-day job, and I think it's important that the work lifestyle appeals to me.

Also saw that my university does have a software engineering course - this might actually be closer to what I'm looking for.

MorphingDragon
Mar 28, 2012, 07:38 AM
So you want to be a developer... (http://penny-arcade.com/patv/episode/so-you-want-to-be-a-developer-part-1)

firewood
Mar 28, 2012, 01:58 PM
Lots of people try stuff that they or someone else concludes that they'd like to be and switch to something else after trying. Or stick with it. The crystal balls are not very accurate.

Try stuff, but make sure you have sufficient options and resources to try something else if you fail, and don't delude yourself if you do fail. That's actually a great path to success.

laserbeam273
Mar 28, 2012, 04:01 PM
Wirelessly posted

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

Nice video! Yeah I think developing is something that definitely would appeal to me. I really do like problem solving. In respect to the video, I don't think I'd struggle at thinking about projects from the finance side of things, and also with working with people.

Thanks again for the replies all, I'll be keeping these comments in mind as I make these decisions over the next couple months.

Cromulent
Mar 28, 2012, 06:41 PM
If you really want to be a programmer read the following (free) book and go through each of the examples in order. By the end of it you'll know if programming is the correct choice for you.

http://learnpythonthehardway.org/book/

PatrickCocoa
Mar 28, 2012, 07:47 PM
The career path you choose after uni is independent of what you studied at school. That sounds weird, but it's true.

If you have a few sample projects on github when you graduate, and can talk knowledgeably (or at least know a few buzzwords), you can get a programming job.

Someone who can program who has some background in another discipline (say Civil Engineering) will be much much more highly sought after at certain firms than someone with just a computer degree.

laserbeam273
Mar 31, 2012, 12:41 AM
If you really want to be a programmer read the following (free) book and go through each of the examples in order. By the end of it you'll know if programming is the correct choice for you.

http://learnpythonthehardway.org/book/

Wow, big promise there! Awesome I'll look into working through it.


The career path you choose after uni is independent of what you studied at school. That sounds weird, but it's true.

If you have a few sample projects on github when you graduate, and can talk knowledgeably (or at least know a few buzzwords), you can get a programming job.

Someone who can program who has some background in another discipline (say Civil Engineering) will be much much more highly sought after at certain firms than someone with just a computer degree.

Interesting. Though I suppose I'm already teaching myself what I know, university hasn't given me too much help. So yeah, guess it makes sense that the two aren't as related as everyone makes them to be. I guess at the moment, what I really want to do is pursue this business idea of mine. I think to do that, I need some time in my weekly schedule for it. As for where I'll be in 5 years time and what job I'll be doing (or what degree I'll be finishing), I really can't say.

GorillaPaws
Mar 31, 2012, 11:08 AM
If you really want to be a programmer read the following (free) book and go through each of the examples in order. By the end of it you'll know if programming is the correct choice for you.

http://learnpythonthehardway.org/book/

It might be worth supplementing this by taking MIT's free online Intro to Computer Science course that's also taught in Python (http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/). It's a great class and you'll learn a lot about CS basics such as how efficiency is measured, and different problem-solving techniques.

Catfish_Man
Apr 1, 2012, 01:21 AM
I'm not sure I have any especially useful insights on this right now, but I just wanted to say that "Would I like software developing?" is probably the most insightful and relevant question a new programmer has asked here. I've found that the single strongest correlating factor with success in programming is whether the new programmer eventually develops a "hunger" for it. If you can't function properly without programming, it's hard to avoid getting good at it.


Good job having your priorities in the right place :)

laserbeam273
May 7, 2012, 03:43 AM
I'm not sure I have any especially useful insights on this right now, but I just wanted to say that "Would I like software developing?" is probably the most insightful and relevant question a new programmer has asked here. I've found that the single strongest correlating factor with success in programming is whether the new programmer eventually develops a "hunger" for it. If you can't function properly without programming, it's hard to avoid getting good at it.


Good job having your priorities in the right place :)

Thanks! I'm thankful to have the luxury of choice - there's a handful of things that I think I could do well at, so may as well pick the one that I really enjoy and am most passionate about.

Anyway sorry to drag up this old thread but I thought it'd be beneficial to post my resolution to this. I've decided to go the IT route, it's becoming more and more obvious to me that that is the skill set I'm most passionate about. I'll be changing degrees from my B.E (Civil)/B.Com to B.IT (Com Sci)/B.Com in August. I'm quite excited about it.

I'm hoping to go one of two routes:
1) Develop awesome programs that revolutionise the business world, and open up big opportunities to individuals - i.e. general solutions
2) Become a solutions architect (heard that name recently from an IT friend - love it!) - i.e. custom-tailored solutions
My aim is to focus on 1), and if that doesn't pan out as well as I'm hoping then I'll go with 2). Though in reality I think I'll end up doing a bit of both.

Now to get on with programming! :D

Mac_Max
May 7, 2012, 01:47 PM
http://www.scottporad.com/2012/05/06/why-do-web-sites-and-software-take-so-long-to-build-and-why-is-it-so-hard/

I saw that on Hacker News yesterday and thought that it might be good for you to read since it covers the non technical side of the biz.

I disagree with the author's friend, which probably is why I enjoy doing dev work. I like the fact software is crafted by hand (well at least the interesting bits. I could do without having to write XML deserializers by hand :P). And every job I've had, tech or otherwise, has always been driven by customer or employer need to be faster/better/cheaper. Thats just human nature. People complain when email is down or slow when 30 years ago the fastest anyone usually got a message was overnight... and if you paid extra for it! And for the sake of perspective, you'll get the same level of harassment working for peanuts as a clerk at a busy retail store with far less appreciation (let alone salary!).

If you let people push you around then you'll be crushed by that. There comes a point where just as a business person you have to draw a line and say "no, I want to get 8 hours of sleep tonight, I will not work a 22 hour shift and no I will not work a 16 hour shift without overtime." Thankfully I've only been put in that situation once.

Also:

http://instagr.am/p/KTOGobADKa

Take that one as you may. I've talked to a couple people that felt chewed up by that sort of work place (two who worked at Apple, a few who worked for similarly sized companies) and plenty who love it. One works at Disney for their web team (Flash) and can't get enough of it. He's that guy and he's rewarded well for it. I personally will throw myself 24/7 at some projects that I really believe in. When it's fun it doesn't feel like work and often times when you own a project like that it becomes something that helps you professionally.

Thats my 2.

Edit:

Also, learn how to negotiate. This is a general life skill and dev types as a whole tend to suck at it (part of why people get suckered into 22 hour long death marches with no OT). Joel Spolsky's blog has tons of great info including essays on this. Seriously, I doubled my income in the past year simply because I learned how to negotiate.

laserbeam273
May 8, 2012, 06:42 AM
Also, learn how to negotiate. This is a general life skill and dev types as a whole tend to suck at it (part of why people get suckered into 22 hour long death marches with no OT). Joel Spolsky's blog has tons of great info including essays on this. Seriously, I doubled my income in the past year simply because I learned how to negotiate.

Some good points there. I definitely agree with much of the article even with my little experience - creating IT solutions is a huge task. I don't think anything has stretched my mind more than the software development I've done at work, and I'm probably the only one that understands the true complexity of it. As for the reward, well that I think comes down to business skills. If you're living on "peanuts", you're doing it wrong I reckon. E.g. Draw Something and Instagram - those guys definitely know how to take a product to the market and capitalise off of it!

Would I work for someone like Apple? Potentially. I like their vision and the grandness of their thinking, but I just don't think I'd have the freedom to pursue the projects I want to. Many of my ideas just wouldn't fit in with their business model.

And congrats on doubling your income in a year, that's quite a feat!

amorya
May 10, 2012, 10:57 AM
The career path you choose after uni is independent of what you studied at school. That sounds weird, but it's true.

If you have a few sample projects on github when you graduate, and can talk knowledgeably (or at least know a few buzzwords), you can get a programming job.

This. I have a degree in Psychology and am employed as an iOS developer.