Looking for suggestions on business path

Express the business side of your digital lives. Share your experiences and/or your comments regarding a business or organization.

No advertising.

Moderator: General Moderators

Post Reply
User avatar
allspiritseve
DevNet Resident
Posts: 1174
Joined: Thu Mar 06, 2008 8:23 am
Location: Ann Arbor, MI (USA)

Looking for suggestions on business path

Post by allspiritseve »

Hello all,

For the first time, I have taken the entire summer off from "normal" work to do web development in php. I've got a great gig in my hometown, and I'm loving all the free time. However, my boss's codebase is BAD. It's not just procedural code, but mixed in with HTML and not logically grouped at all. I want to upgrade his codebase, and start some good business practices, but I can't help feeling that I'm moving a little too fast for that company. I am reading a ton of stuff online about enterprise php, test driven development, domain driven design, etc., and I would love to be working with people that were likeminded. I want to be able to bounce my ideas off people, and have sensible standards to follow so I'm not completely in the dark when developing larger and larger applications.

The thing is, web design has always been a hobby for me. I'm a senior psychology major at a small liberal arts school, and their CS program is crap. Not to mention I'd have to learn another language, since they don't offer PHP classes (Java wouldn't be bad, but at least give me Ruby or something?). I would love to get more advanced with PHP, but I feel like all the serious developers are looking for CS students with years of OOP theory under their belt. Maybe that's not even something you can learn in school, I don't know... but I feel like my expertise is growing the more I write and study this stuff, and I feel like I need to structure what I'm learning, either with a serious design firm or with a good CS education. Any suggestions?

Thanks,

Cory
User avatar
califdon
Jack of Zircons
Posts: 4484
Joined: Thu Nov 09, 2006 8:30 pm
Location: California, USA

Re: Looking for suggestions on business path

Post by califdon »

Hi Cory. Clearly nobody but you can assess what would be right for you, but it's a good idea to ask for outside perspectives. Would I be correct in interpreting your situation as that of coming to the realization that what you've been studying for the past 4 years is not what you want to do in life? That's a crushing realization, to be sure. With unlimited time and resources, your best option, in my opinion, would be to get a formal CS education, but at this late stage in your school life, that's a big price to pay. Furthermore, it's always possible that, by the time you spent several more years studying CS, you could find that it's not your real ambition, either! Hobby programming is one thing, a career is something else. A lot depends on what your options are, over the next several years. If you're living at home with parental financial support, you might choose a different path than if you have to earn your living the next few years.

What are the chances that you could capitalize on your knowledge in the two fields? Maybe find a job with an organization that specializes in web sites or databases related to psychology? There are organizations that conduct psychology tests and I would imagine that having someone with some web and database skills who also understands the underlying testing methodology would be quite attractive. I don't know quite how you would go about identifying such organizations, but it's something you could explore, perhaps online or at your local library (a good reference librarian can be a tremendous help in making "connections").

I wish you good luck in beginning your career.
User avatar
allspiritseve
DevNet Resident
Posts: 1174
Joined: Thu Mar 06, 2008 8:23 am
Location: Ann Arbor, MI (USA)

Re: Looking for suggestions on business path

Post by allspiritseve »

califdon wrote:Would I be correct in interpreting your situation as that of coming to the realization that what you've been studying for the past 4 years is not what you want to do in life?
Well, no, it's not THAT dismal... I think I have finally found something I see a career in. I've never wanted to do anything in mainstream psychology, but that's my major because I find it extremely interesting to study. I am in the process of figuring out what I'd like to do for grad school, though. Programming and web design have always been a hobby for me, and I have always taught myself. I couldn't stand the idea of taking classes where I knew more than the prof (as it was in high school) and I didn't really want to learn another language other than PHP (though I've warmed up to that idea a bit).

I guess my realization is that I can see a career in my hobby, and its something I really enjoy, but I don't know in what avenue to take it at the moment. I've realized that once I get beyond the general knowledge, teaching myself is really hard to do. I feel like a good base in enterprise OOP would be very beneficial to me. To get that base, I either need to work with serious PHP programmers (unlike my boss) or go back to school and study CS. At this point though, I feel like I'd need to go back to school to get in with the kind of programmers I want to work with. In terms of combining my hobby and my studies, there is a field called Human-Computer Interaction (HCI) that is sort of CS and psychology combined. I would love to learn more about that, but I don't really know where to look.
User avatar
Christopher
Site Administrator
Posts: 13595
Joined: Wed Aug 25, 2004 7:54 pm
Location: New York, NY, US

Re: Looking for suggestions on business path

Post by Christopher »

I would recommend that you go for a CS degree. You will learn many useful things that you will not soon come across, even if the program is "crap" as you say. Learning the theory and even Java will be of some benefit, but having the degree will enable to be considered by companies that have teams of like-minded developers. Since you started by complaining about that, I assume that your goal is more rewarding work environment and projects.
(#10850)
User avatar
Eran
DevNet Master
Posts: 3549
Joined: Fri Jan 18, 2008 12:36 am
Location: Israel, ME

Re: Looking for suggestions on business path

Post by Eran »

That's a crushing realization, to be sure
Actually it's a very normal process, and it's probably why most people go to college (outside of getting a degree obviously). I finished my B.Sc in Physics before I realized that it just ain't my thing and I much rather be an entrepreneur and build applications for the web. Better late than never, right? :wink:

Regarding a CS degree - From personal experience I found it is not really a requirement. Sure, many companies with no clue in web development list it as such, however those who do understand the nature of web development will not - and those will probably provide a better place to work in. And you can always be your own boss with the opportunities the web provides.

I have seen many CS majors who have not a clue about real development practices (and I'm not talking about only web here). This is not surprising, as the name implies - Computer Science is not about development but about theory of computers. Sure, you learn some programming skills as well - but completing some exercises is not even remotely close to having experience with actual development. The academic purpose of universities is not to prepare students for a job but to advance the science of computing - which is nice, but not really relevant for someone looking to be a developer.

I think you already know the best way to develop - work with experienced and talented developers, read on the web - there is so much knowledge readily available if you know what to look for. Also open-source projects of high quality are a great source of reference material.

Good luck with whatever you choose!
User avatar
allspiritseve
DevNet Resident
Posts: 1174
Joined: Thu Mar 06, 2008 8:23 am
Location: Ann Arbor, MI (USA)

Re: Looking for suggestions on business path

Post by allspiritseve »

Just wanted to share-- I came across a graduate program at the University of Michigan: the School of Information. They have a 48 credit hour masters program with specialties in Human-Computer Interaction, Information Analysis and Retrieval, Social Computing, among others, as well as allowing you to specialize in your own areas. I'm pretty sure some of their programming classes are in PHP as well, though Java or Ruby wouldn't be bad. I'm definitely going to consider going there next year. I don't think there is a comparable program in Michigan.
User avatar
onion2k
Jedi Mod
Posts: 5263
Joined: Tue Dec 21, 2004 5:03 pm
Location: usrlab.com

Re: Looking for suggestions on business path

Post by onion2k »

If you want to improve the way you develop software rather than just the way you develop PHP scripts, you will have to learn other languages. There are some things that you'll just never experience with only PHP - developing things that work in real time, threading, GUI development (although that is technically possible with the PHP-GTK+ bindings), compiling, low level systems interaction, how computers do things - they're all significant areas that are interesting and fun to learn about, and, most importantly, areas that will teach you things that you can then apply to the PHP code you write to make it better.
User avatar
allspiritseve
DevNet Resident
Posts: 1174
Joined: Thu Mar 06, 2008 8:23 am
Location: Ann Arbor, MI (USA)

Re: Looking for suggestions on business path

Post by allspiritseve »

I've had people tell me that before... I think I would really like to learn Ruby, I just don't know when I'll have time. I have been hesitant to learn another language I think because PHP has such a low barrier to entry, and I feel like I can be competitive with it, but other "real" programming languages seem to require more of a technical background than I have. I do find it all very interesting though, and am always looking to learn more and become a better programmer.
User avatar
Ollie Saunders
DevNet Master
Posts: 3179
Joined: Tue May 24, 2005 6:01 pm
Location: UK

Re: Looking for suggestions on business path

Post by Ollie Saunders »

I am reading a ton of stuff online about enterprise php, test driven development, domain driven design, etc.
It's pretty impressive that you've got into it without just by searching online without really talking to anyone. I too learnt about those things from the people on this forum. I'm quite certain it was the right thing to do. If you're someone who actually cares about doing things to a high standard and being efficient don't stop learning that stuff. In fact just don't stop learning.
and I would love to be working with people that were likeminded.

Since first learning OO and TDD two years ago I have as yet been unable to work with people who love doing the same. Most this was due to me living in a rural isolated place. Things are starting to look up now I live in a city. If you don't live in a place with a good developer community that's something you should seek to fix. Feeling like your the only person who gives a crap is not a good place to be, I'm sure I don't need to tell you that.
I want to be able to bounce my ideas off people, and have sensible standards to follow so I'm not completely in the dark when developing larger and larger applications.
Yes, that's critically important as well as so many other things like pair programming that you can't possibly do on your own. I've spent as much as 4 days working on the implementation for something only to suddenly realize - "Oh this isn't going to work because I've overlooked this important factor". If just one other person was around to discuss my ideas with that would never have happened and it's demoralizing.. wasting four days can constitute a failure but in fact it can happen to all of us.
The thing is, web design has always been a hobby for me.
Perhaps I'm misinterpreting you here but you seem to be saying that like it's a bad thing... I think it's slowly becoming more accepted that these days some of the best programmers are the best despite (or perhaps because) they haven't got a degrees in computer science or whatever.

Since I moved here to Toronto by far the smartest my knowledgeable guy I've met has never been to university. In fact he was a security guard and a bicycle courier until recently. He's spent many hours playing around with lisp and countless other languages and he completely beats the pants off me when he talks about language design. He's developing his own language at the moment.

I have of course met lots of other smart guys most of which have degrees but it's not the requirement it used to be and dude, four years is a big commitment and a lot of student dent. Besides I did a two year diploma in software development and 50% of everything I learnt was rubbish - I had to unlearn it.
I'm a senior psychology major at a small liberal arts school, and their CS program is crap. Not to mention I'd have to learn another language, since they don't offer PHP classes (Java wouldn't be bad, but at least give me Ruby or something?).
This has been already been said by others but it's important enough to repeat: Learn many languages! Besides you probably already do some JavaScript right?

If you only program in one language you tend to think of that language as "the one true way" when the reality is that nobody really has the answer. Software development is something thousands of people have theorized over. People have developed all kinds of different solutions, some are better than others, some are better at particular aspects but there is no one true way - at all. Part of the UNIX philosophy embodied this fact by suggesting that numerous small, dedicated, languages was the best way to approach the problems. It seems that the Java revolution moved us away from that but I get the impression it's shifting back a bit (DSLs anyone?) and rightly so.

Also remind yourself that learning your first programming language is significantly harder than learning subsequent ones. And whenever something seems really alien to you, you'll probably get the most enlightenment out of understanding it.
I would love to get more advanced with PHP, but I feel like all the serious developers are looking for CS students with years of OOP theory under their belt.
OO is definitely something decent employers are looking for. And the reason for this is that you have to understand it in order not to mess up existing code bases and it takes on average at least a year, more often two.

But! There's something you can do to speed that up. Firstly OO is significantly easier to apply in Python, Ruby and SmallTalk compared to PHP and Java. They use a different model which is, in my opinion far superior.

Secondly, the best approach is to use TDD and approach all your OO design and learning by means of refactoring. Buy Martin Fowler's classic Refactoring book, read that and about design patterns. Refactoring allows you play and experiment with different designs, it gives you confidence and tests force good design. It sounds funny, but to learn TDD and OO together is easier than learning them one at a time. Much.

Then try and write something reasonably big. Rewrite as many times as you care to. This is how I learnt, worked a treat.
Maybe that's not even something you can learn in school, I don't know... but I feel like my expertise is growing the more I write and study this stuff, and I feel like I need to structure what I'm learning, either with a serious design firm or with a good CS education. Any suggestions?
I'm not sure about that. Maybe you need a mentor, someone to tell you which books to read and in which order. Someone to help you when you get stuck. If you like I could assist you with that, although I don't claim to know all the answers, not by any means, but I have already travelled the road you are about to embark. I dunno, you might find my Ruby evangelism a little off putting though :-)
Hobby programming is one thing, a career is something else.
Well Califdon, I'm busy trying to establish a company that combines both. Strong team spirit, highly focus on best practise, learning and personal development, yet pays the bills and some; at least that's the plan.
A lot depends on what your options are, over the next several years. If you're living at home with parental financial support, you might choose a different path than if you have to earn your living the next few years.
Oh yes that's an excellent point. I had the freedom to live at home so I spent nine months learning TDD and OO doing bits of web design for very little money on the side. If you don't have the freedom to do that I guess you have to go for junior programming jobs - *shudder* - I never did that but it sounds like the slow road to me.
What are the chances that you could capitalize on your knowledge in the two fields? Maybe find a job with an organization that specializes in web sites or databases related to psychology?
Nice if you can get it. That's a big if though.
I couldn't stand the idea of taking classes where I knew more than the prof (as it was in high school)
Ha ha! You know it's quite good fun if you're the audacious type. I really <span style='color:blue' title='I'm naughty, are you naughty?'>smurf</span> of one of my lecturers once when I corrected him on something in front of everybody. Ahhh I used to keep them on their toes. But I had a lot of respect for the guys who genuinely knew more than me. And I've learnt to keep my mouth shut, that's a good skill.
I guess my realization is that I can see a career in my hobby, and its something I really enjoy, but I don't know in what avenue to take it at the moment. I've realized that once I get beyond the general knowledge, teaching myself is really hard to do. I feel like a good base in enterprise OOP would be very beneficial to me. To get that base, I either need to work with serious PHP programmers (unlike my boss) or go back to school and study CS. At this point though, I feel like I'd need to go back to school to get in with the kind of programmers I want to work with.
Have you actually tried to find other developers who think like you think? How hard? What are you prepared to do to find them? I was prepared emigrate, looks like it's paying off. Personally I wouldn't settle for the second best but then that's me.
I have seen many CS majors who have not a clue about real development practices (and I'm not talking about only web here). This is not surprising, as the name implies - Computer Science is not about development but about theory of computers. Sure, you learn some programming skills as well - but completing some exercises is not even remotely close to having experience with actual development. The academic purpose of universities is not to prepare students for a job but to advance the science of computing - which is nice, but not really relevant for someone looking to be a developer.
+1 agree very much. If you're interested in software best practise rather than computational mathematics and CPU architectures etc. software engineering is where you want to be.
I've had people tell me that before... I think I would really like to learn Ruby, I just don't know when I'll have time.
Is it a question of time or a question of priorities? Perhaps we've changed yours. And for the record, Ruby is TEH BOMB! I'm sorry I tried to hold it in.
I have been hesitant to learn another language I think because PHP has such a low
barrier to entry, and I feel like I can be competitive with it
This is probably one of my major problems with PHP - 99% of everything written in it sucks. I wouldn't recommend joining an open source PHP project in order to learn because the chances are the programmers you'll be working with won't be very good. Notable exceptions that I know of: Swiftmailer, SimpleTest, HTMLPurifier, PHP Image.
User avatar
allspiritseve
DevNet Resident
Posts: 1174
Joined: Thu Mar 06, 2008 8:23 am
Location: Ann Arbor, MI (USA)

Re: Looking for suggestions on business path

Post by allspiritseve »

Ollie,

Thanks for the very detailed reply.
Ollie Saunders wrote: This has been already been said by others but it's important enough to repeat: Learn many languages! Besides you probably already do some JavaScript right?
... Also remind yourself that learning your first programming language is significantly harder than learning subsequent ones. And whenever something seems really alien to you, you'll probably get the most enlightenment out of understanding it.
I started out learning QBasic when I was in 7th grade. I tried Visual Basic for about a day, Perl for a couple of weeks, and then found PHP. (Oh, and I think I experimented with SSI for a while). For front-end coding, I taught myself HTML, CSS, and JavaScript... so PHP isn't really my first language. It is, however, my first attempt at getting into OOP. I think once I started learning about design patterns and trying to think in objects, I realized the standard PHP books weren't really that helpful anymore. I've got most of the language memorized, and the rest I just look up in the manual. Most of the stuff I read nowadays is generally Java or C#, I think.
Ollie Saunders wrote:Have you actually tried to find other developers who think like you think? How hard? What are you prepared to do to find them? I was prepared emigrate, looks like it's paying off. Personally I wouldn't settle for the second best but then that's me.
I sent emails to every web design company I could find in google and in the phone book in my area. Honestly, there just isn't much where I live. I was lucky enough to find the company I did (they were the only ones to respond) but at least I am developing PHP applications with them. It's a good start.
Ollie Saunders wrote:Is it a question of time or a question of priorities?
Considering I'm a senior at an academically-rigorous 4-year private college that runs on the quarter system instead of semesters (ie fitting 15 weeks worth of material into 10 weeks)... yeah, school is kind of my top priority, and it takes all my time. Any free time I have is generally going towards completing projects at my current job, so I don't have time to just drop everything and learn a new language in order to become a better programmer. It's a slow process, and maybe once I've graduated I can reassess my priorities.

I'll have to check out the refactoring book... I've browsed PoEAA and Evans' DDD, so far, but I'll have to wait until I'm back at school (2 weeks) so I can use the library's loan program and get the book for free for a couple of weeks. (Small liberal arts schools don't have the best selections of CS books)

Anyways-- thanks again for the post, it's a lot to think about.

Cory
User avatar
Ollie Saunders
DevNet Master
Posts: 3179
Joined: Tue May 24, 2005 6:01 pm
Location: UK

Re: Looking for suggestions on business path

Post by Ollie Saunders »

I think once I started learning about design patterns and trying to think in objects, I realized the standard PHP books weren't really that helpful anymore. I've got most of the language memorized, and the rest I just look up in the manual. Most of the stuff I read nowadays is generally Java or C#, I think.
Yes, and FYI everyone, apparently if you can be bothered to translate a lot of those Java and C# books into PHP you'll be published instantly.
I'll have to check out the refactoring book... I've browsed PoEAA and Evans' DDD, so far
Yes those are good books. I haven't read DDD myself but I know a lot of people have spoken about it.
Anyways-- thanks again for the post, it's a lot to think about.
Sure. It'll mean different things if you read at different stages in your career.

It sounds like your on the right track, good luck with everything.
Post Reply