14 Jan, 2013, Telgar wrote in the 21st comment:
Votes: 0
You should go to school, the best you can afford, pick up books on relevant topics and start programming as soon as you can.

However, no school is going to teach you software engineering. This is not a skill you can learn in an academic environment. In school, you will learn a lot about algorithms, data structures, formal languages, a bit of math, how to build a network stack, an operating system or a compiler, but you will never learn how to write a well structured, elegant, and easy to maintain piece of software. This is a skill that is learned through experience and exposure to working on lots of different systems, lots of different code bases, and lots of different languages. The more well trained and experienced the developers you are work with, the more professional code you are exposed to, the more you will learn new ways to manage the complexity of the code you write. Eventually after doing this for a long time, you learn to pick the proper tools for the job and focus on building a high quality, maintainable system.

That's software engineering in a nutshell. Coders are a dime a dozen, but software engineers are rather rare.
14 Jan, 2013, Runter wrote in the 22nd comment:
Votes: 0
Go back to school if you need the pedigree. Otherwise, it's not a time-effective or cost-effective pursuit. It's also easier to obtain later. Actually, I often feel like my degree is a waste of money even with regard to employment. My current employer didn't even want my resume, or to talk about education background. Only samples of work.
14 Jan, 2013, yue wrote in the 23rd comment:
Votes: 0
@Telgar: Your post is confusing. I want to learn software engineering. You described my goal perfectly: "Write well-structured, elegant, easy to maintain software." It sounds like school is not the place to learn that.

I am definitely taking the rest of your advice though. I have grabbed a couple books, I will be working my way through them… and I have started programming! Anyway, you offered some good advice and I look forward to learning more from you here at Mudbytes. Hope you stick around and post more! :)
14 Jan, 2013, arendjr wrote in the 24th comment:
Votes: 0
Quote
However, no school is going to teach you software engineering.

My Master's degree in Software Engineering seems to disagree.

Quote
In school, you will learn a lot about algorithms, data structures, formal languages, a bit of math, how to build a network stack, an operating system or a compiler, (…)

That provided a pretty decent summary of my Bachelor's in Computer Science.

Quote
(…), but you will never learn how to write a well structured, elegant, and easy to maintain piece of software.

Wrong. That's exactly what the Master focused on. Software Architecture, Software Testing, Software Management, Software Process, things like teamwork, refactoring, design patterns were all covered.

In fact, as with other engineering titles, it's considered disingenuous (sometimes even illegal) to call yourself Software Engineer without having the degree.
14 Jan, 2013, yue wrote in the 25th comment:
Votes: 0
@arendjr: your post makes more sense :D

I thought that that is exactly what a software engineer is. Heh.
14 Jan, 2013, Rarva.Riendf wrote in the 26th comment:
Votes: 0
yue said:
@Telgar: Your post is confusing. I want to learn software engineering. You described my goal perfectly: "Write well-structured, elegant, easy to maintain software." It sounds like school is not the place to learn that.


Well you did not listen much then. It is exactly where you learn that. The workplace is where you abandon all hopes about it. (mostly, there are always exceptions)
14 Jan, 2013, yue wrote in the 27th comment:
Votes: 0
Rarva.Riendf said:
yue said:
@Telgar: Your post is confusing. I want to learn software engineering. You described my goal perfectly: "Write well-structured, elegant, easy to maintain software." It sounds like school is not the place to learn that.


Well you did not listen much then. It is exactly where you learn that. The workplace is where you abandon all hopes about it. (mostly, there are always exceptions)

Telgar said:
However, no school is going to teach you software engineering.

Rarva, seriously. Stop posting in my threads.
14 Jan, 2013, arendjr wrote in the 28th comment:
Votes: 0
Stay nice guys :)

But Rarva is right here, going to school will definitely help to push you in the right direction. I hope I successfully disarmed Telgar's misguided "no school is going to teach you software engineering" statement before.

So yeah, if you're really serious about it, go get the degree. But before you start on a Software Engineering degree, you will be expected to be a proficient programmer already, so first keep working at that. And as I stated before, I do think it's overkill to get the degree just for MUD programming :)

Cheers!
14 Jan, 2013, Rarva.Riendf wrote in the 29th comment:
Votes: 0
Quote
Rarva, seriously. Stop posting in my threads.


I have a very simple solution for that: stop creating any :)
14 Jan, 2013, yue wrote in the 30th comment:
Votes: 0
No.
My posts are on-topic. They are, for the most part, aimed to be constructive.
Yours are not. You've made it clear to me, here and in Private Messages, that trolling is a past-time of yours. That's against the forum policies.

An examination of this thread and what you have posted shows pretty plainly that you aren't really bothering to contribute anything. So stop wasting space.
14 Jan, 2013, KaVir wrote in the 31st comment:
Votes: 0
Rarva.Riendf said:
Well you did not listen much then. It is exactly where you learn that. The workplace is where you abandon all hopes about it. (mostly, there are always exceptions)

I would phrase it more optimistically: the workplace is where you learn to compromise between the ideology you learned at school, and the practical necessities of the real world.

yue said:
Rarva, seriously. Stop posting in my threads.

Welcome to the internet. I regret to inform you that you don't own a thread just because you started it. If you don't like what someone has to say, I recommend ignoring them.
14 Jan, 2013, Rarva.Riendf wrote in the 32nd comment:
Votes: 0
Quote
You've made it clear to me, here and in Private Messages, that trolling is a past-time of yours.


And you pretty made it clear to me that you don't understand much of what I am saying to you. Thing is this thread is public for all to see, and I won't have people think that a CS degree is of no value for learning proper habits in the field. I have seen way too many people like you in 10 years in the field thinking they can learn everything right by themselves just cause they hard hard worker, claiming they can be efficient in whatever langage without even knowing why the langage has been created to begin with. Stuff they probably never even bothered looking at.

For the rest if you have a problem with me ask the moderators.
14 Jan, 2013, Twisol wrote in the 33rd comment:
Votes: 0
yue said:
In the last.. 9 days, I have gone from almost NO programming knowledge to writing HTML, Javascript, PHP, ASP, XML, Lua, Ruby, Python, Java, C, C++. Granted, I can generate a lot more of my own code in the easier scripting languages than I can in C, but I understand what data structures are, what control structures are, the differences between functional, procedural, and object-oriented programming. I know what byte-code is. I understand how a compiler works. I know how to work my debugger and I understand why doing certain things a certain way will screw you up when you try to unwind the stack. So I'm all for learning on your own, or grabbing a book, whatever. I just wanted to know if (and to what degree) it would be beneficial to supplement learning with a couple/some/many classes or a trade school program. I'm gathering the general consensus is "No."

Hell no. You're obviously a smart and driven individual. Going to school will lock you down to their schedule and pace of teaching. I'm self-taught for almost a decade, and I only recently decided to go to school. I've learned very little in my CS classes that I couldn't have learned on my own, in my own time. And I started young, so you have the advantage(!) that you can more easily assimilate and understand newer concepts. When I was little, I had no foundation to compare to, so my progress was slow. (Fun, but slow.) If you're able to learn faster than the system can teach, it'll probably just bore you crazy.

The trick is sorting the high-quality resources out from the low-quality ones, finding a community (preferably multiple) that can support you in the various facets you care to explore, and figuring out what you should to do actually advance yourself. In a trite phrase, you have to figure out books, friends, and exercises. To its credit, college gives you a jump-start on the problem with a generally-applied framework, but it's only one approach. It really can't beat intensive self-study.

You're obviously interested in MUDs. For all its warts, MudBytes is a good community to hang out in for general discussion; most of the other communities I've seen are either even more specific (which is not to say they're bad) or less focused on development. For MUD-related resources, pick a codebase (preferably a modern one) and play with it. Don't be afraid to change the code; the first thing I do when reading new code is refactor it mercilessly, then reset my changes once I understand what's going on. If an interesting subsystem catches your eye - say, the Telnet protocol - make a note to research the details. There obviously aren't a lot of "books" out there for MUDs, though.

For general programming stuff, I recommend hanging out in a relevant IRC channel. I'm learning Haskell right now, so I lurk in the #haskell channel on Freenode pretty often. You can easily learn about new things just by eavesdropping, things you may later want to study in more detail. There are some very high quality books and online resources, but sometimes they're hard to find. (For example, Google has a tendency to show w3schools material instead of the higher-quality MDN reference.) This is where having a community to turn to is helpful.

I don't think college is a bad idea, but in general, the system is meant to work okay for a lot of people. If you can do better than the system, you probably should. (I'm majoring in Mathematics precisely because I personally can't do better at math than the university system, though you better believe I'm supplementing my classes with my own studies.) I will say, though, that the university community can be quite excellent depending on where you go. I was lucky enough to land an awesome internship through a professor, which obviously opens doors of its own.

Oh, and since you're startup-savvy, check out Hacker News. It's a link-sharing site run by a tech startup incubator called Y Combinator where you usually see fairly high-quality submissions. Right now it's inundated with material on Aaron Swartz (:sad:), but in general it's fairly varied.

I, uh, I hope all that helps in some way. :tongue:

EDIT: As mentioned by someone else, if you plan on doing research, you'll want a degree. It's just part of academia. It sounds like you're doing this for your own edification and to add another tool to your toolbox, though, so I'm not sure how much that applies.
14 Jan, 2013, yue wrote in the 34th comment:
Votes: 0
@Twisol: thank you so much and best of luck to you in what I'm sure is going to be a prosperous career in computer-something-or-other! :) Tyche has already given me some good book suggestions, so has mangan. What books would -you- suggest?

KaVir said:
Welcome to the internet. I regret to inform you that you don't own a thread just because you started it. If you don't like what someone has to say, I recommend ignoring them.
It wasn't a serious request because I know #1. I don't own these threads I start and #2. Rarva is unlikely to quit posting in my threads just because I tell him to. It was more of a way of expressing my feelings concerning the quality of his posts.

Rarva.Riendf said:
Thing is this thread is public for all to see, and I won't have people think that a CS degree is of no value for learning proper habits in the field. I have seen way too many people like you in 10 years in the field thinking they can learn everything right by themselves just cause they hard hard worker, claiming they can be efficient in whatever langage without even knowing why the langage has been created to begin with. Stuff they probably never even bothered looking at.
I see where you're coming from. Now please, try to see where I am coming from, because much of what you're saying just isn't applicable in this context. No matter who posted what in this thread, I haven't for a moment believed that a "CS degree is of no value".
14 Jan, 2013, Rarva.Riendf wrote in the 35th comment:
Votes: 0
Quote
because much of what you're saying just isn't applicable in this context


Problem is , you never stated any context. We still don't know if you want to make it a job in the future as an example. We don't know if your only interest is about having a deeper understanding in CS than just coding (because CS is way from being only that). What Twisol said about school is also true, most of what you can learn in it can be learned in school can be learned a lot faster. Thing is as usual getting to 90% is the easy part, it is the last 10% that are the hardest.
So if you want (and need) those 10% and have the time to waste, go to school. If not then there is no need for the question: do not.

It is not school that taught me how to code, I was coding Tetris on my HP48 when I was 16 without any exterior help.
And my engineer school mostly taught me nothing of interest. But the 10% it taught me showed me how little I knew about how computer works. And that was cause there was ONE good professor. That is why I also said: go to school but not just ANY school, otherwise it will be useless.
14 Jan, 2013, yue wrote in the 36th comment:
Votes: 0
Rarva.Riendf said:
Quote
because much of what you're saying just isn't applicable in this context

Problem is , you never stated any context. We still don't know if you want to make it a job in the future as an example.
Yes, I did. In my first three posts, that's pretty much ALL I gave.
Rarva said:
We don't know if your only interest is about having a deeper understanding in CS than just coding (because CS is way from being only that)
Nope! I don't think that's the problem:
Yue said:
Let me reiterate: I'm not asking for advice on my education. I'm asking for advice on becoming a better programmer (so I can write software - SPECIFICALLY THE SOFTWARE DEALT WITH ON THIS HOBBYIST FORUM - as a hobby.

Rarva said:
That is why I also said: go to school but not just ANY school, otherwise it will be useless.
That has already been stated by another member, much earlier in the thread.
Rob said:
What types of schools are goo for these types of classes? Engineering Universities are best. Big-State-U general universities are fine and good if you get a good offer. Do everything you can to avoid having to go below this.

So I gather you (Rarva) aren't actually reading the posts in the thread, but responding with what you think is the right thing to say after skimming over the topics. Which brings me back to my idea that you're not really trying to be helpful. Quit trolling me. *shrug*
14 Jan, 2013, Rarva.Riendf wrote in the 37th comment:
Votes: 0
Quote
So I gather you (Rarva) aren't actually reading the posts in the thread, but responding with what you think is the right thing to say after skimming over the topics. Which brings me back to my idea that you're not really trying to be helpful. Quit trolling me. *shrug*


Maybe it is jsut a communication problem, but nowhere in what you said means that you never intend to making it a job in the future to me.

And I make a great distinction in the school kind and the professor that are in it….So what Rob said is different from what I am saying.

Quote
Which brings me back to my idea that you're not really trying to be helpful.


Seems like I just have a hard time understanding why someone would ask a hint including going to school for 2 or 3 years only to be better at a hobby.
14 Jan, 2013, Tyche wrote in the 38th comment:
Votes: 0
There is also this: http://www.amazon.com/Game-Programming-P...
It'll also bring up a bunch of related titles.
However, do not consider it a recommendation, because, frankly, I didn't think it was worth the paper it was printed on.
YMMV
14 Jan, 2013, mangan wrote in the 39th comment:
Votes: 0
yue said:
@mangan: You said a degree takes a long time. It doesn't have to. I've been through Uni already and finished two degrees in 3 years. I tackle school the same way I'm tackling MUD development/building a brewery. Balls to the wall. :)

You can take numerous classes at once, and get through a degree relatively quickly. You can also probably skip a majority of the GE requirements since you already have degrees that have those covered. A more accurate point I should've made is that classes go at a set pace. In a quarter system, you are generally looking at 10 weeks per class, that will cover topics that a highly motivated individual may cover in 2-3 weeks on their own. (Or two days, or 5 weeks, or 20 weeks… but you get the point.)

Telgar said:
However, no school is going to teach you software engineering. This is not a skill you can learn in an academic environment.

I highly disagree with this as well. Where I earned my CS degree, we were required to take an "Introduction to Software Engineering" course. There are then advanced courses which are not required but can be taken as electives. There are then Master and PhD tracks which focus in depth on Software Engineering. A strong point throughout all of these SE courses is that there is an actual cost value to doing things "properly" (since maintaining code is the most costly ($) part of any large scale software project), even when other pressures exist such as deadlines, stockholders, customers, etc. Further, the classes touch on methods of balancing such concepts. Depending on your school, you'll get varying topics, but many of the top ranked schools focus not only on the theory of Software Engineering/Architecture, but also on the experience of doing so, via projects and the like.

Academia may have stereotypes for many things, but can also be extremely open, more so than actual industry. That said, much of the points I just mentioned are going beyond the original point of the thread, so I'll stop there.
14 Jan, 2013, yue wrote in the 40th comment:
Votes: 0
Rarva.Riendf said:
Seems like I just have a hard time understanding why someone would ask a hint including going to school for 2 or 3 years only to be better at a hobby.

I explained this as well. I have the time, I have the money, I have a scholarship still, and by diligently pursuing improvement in my "hobby" skills, I have already successfully turned four hobbies into four profitable businesses (a martial arts club, a brewery, an IT company, and an apothecary - this is exactly what I intend long-term to do with a MUD.. This was explained by me in post #6 @Cratylus and @rob. Which brings me back to the idea that you aren't actually reading posts, which means your "responses" aren't really all that helpful.
20.0/89