views:

184

answers:

7

I would like to know how can I set up a development environment at home. I'd like to make a kind of simulation to imitate a real software development firm. I am learning Ruby and Java, and I have the necessary tools for small projects on my laptop (compiler, interpreter, IDE etc). However I'd like to experiment with some other stuffs such as version control, automated build tools, and continuous integration. I have been searching the web for various resources and I am thinking about how can I dedicate my old PC to these tools. My biggest problem is that some tutorials and documentations sound like double Dutch and I know very little about networking. Can I achieve my goal, or maybe should I wait till I understand more?

+1  A: 

i can't give you the answer you are looking for, but in my opinion there is no reason for you to wait unless youre not willing to start over again once you realized you messed up. with each attempt to make your development environment you will improve its design.

also, by trying to set up your development environment, you will be forced to learn new information.

ch4c0r
Thanks! I was a bit shy, maybe due to my background. As other answers show there is no wrong in the trial-error learning mechanism in this field :D I do try to set up my own environment and play with it.
zolizoli
+6  A: 

Don't wait. Do.

Don't get hung up on concepts you don't understand. Steamroll right past them initially. I often found that just by trying to do things, even if I didn't fully understand them, I'd eventually figure it out, or learn something along the way that helped me figure it out later.

The worst thing to do is wait.

It might get REALLY painful, but persevere and you'll be much more experienced when you come out the other end. :)

Terry Donaghe
Thanks, I have the same opinion but sometimes I think It's counter-productive, but I'll give it a try.
zolizoli
Just don't give up and don't be afraid to ask for help when you get truly stuck and just can't figure out how to move forward. Learning ruby and Ruby on Rails was one of the most difficult things I've done as a developer because I had no experience with *nix OSes - I learned TONS, but at times I was very frustrated. Just keep at it!
Terry Donaghe
Thanks for encouraging me! I am doing the same. I learn something, or just face a problem so I have to try a solution. Usually it doesn't work for the first time and after a few (or many) trial and error I get through.What I meant is that I use a different style of learning elsewhere. I studied humanities and we read a lot. If a problem arise, we read more! We want to see a lots of examples from previous solutions before coming up with our own. In this world this is a parallel process. Read, see solutions, write your own in short iterations. Anyway I like it :D
zolizoli
+3  A: 

"version control, automated build tools, and continuous integration"

Just start downloading. SVN is easy to install in Windows.

Automated build tools for Ruby and Rails isn't perfectly sensible. For Java, however, there are lots of tools. Look at this: http://en.wikipedia.org/wiki/Build_automation#Software_tools for some ideas. Pick one and download it.

Continuous Integration tools. http://en.wikipedia.org/wiki/Continuous_integration#Software There are just too many choices. Here's the chart: http://en.wikipedia.org/wiki/Comparison_of_Continuous_Integration_Software

Star with Hudson. It's good enough to get started.

S.Lott
Thanks! It seems Hudson is the easiest choice for me. I have already installed it and I hope I can play with soon.
zolizoli
+1  A: 

"...maybe should I wait till I understand more?" What would be the advantage of waiting? You'd be more likely to get more right on the first try, I guess, for whatever that's worth. But you'd be waiting and not learning as much in the interim. You'll learn far more from "doing" than from reading, and each mistake will be a valuable lesson learned, likely without any serious consequences. Just go for it.

Beska
Thanks! I'll go for it! It seems learning to program requires a very different mind set that I used to have.
zolizoli
+3  A: 

You can absolutely achieve your goal.

Start with version control. If you're on Windows, VisualSVN is a super simple server, and TortoiseSVN is a super simple client. You'll be up and running within an hour.

I'd also recommend Hudson for continuous integration.

Also find some tools to do your own automated testing. I'll recommend both JUnit for Java and Selenium, if you're doing any kind of web development. Start practicing Test Driven Development!

Every good team uses some kind of issue tracking system. Here's a list to choose from: http://en.wikipedia.org/wiki/Comparison_of_issue_tracking_systems

Dolph
Thanks! Since I am using Ubuntu I won't try VisualSVN and TrotoiseSVN, but both semms very good tools.I have already installed Hudson as S.Lott suggested.And a big thank for pointing for TDD!!! My offline fellows often say that programming based on textbooks isn't real-world programming and everyone should try TDD who wants to learn "real programming". JUnit seems a very good starting point, I'll try to go through a few tutorials and make projects using it.
zolizoli
I'd also recommend using a bug tracking system for every project you work on, even if you only use it as your own personal to do list. I included a link above to Wikipedia's comprehensive list. Have fun!
Dolph
Thank you very much! I am playing with Hudson, bought a book about JUnit, and finally I ended up at git. I'll review the bug tracking systems and I am sure that I can find a good one.
zolizoli
A: 

I am not associated with Atlassian in any way, but I would honestly suggest you to try the Dragon Slayer Quest.

Why?

Because with the Starter licenses, for 60 USD, you will get tools that are:

  • Industry proven
  • Fully integrated
  • Fully supported
  • Very well documented
  • Highly extensible

What you will need is:

  • A small connected server (something along the lines of a dual core with 2GB memory and enough hard disk space to store your files and attachments), could easily be that your old PC fits the role
  • Ubuntu Server, SVN comes out of the box if I remember correctly if not, it's a package that is simple to install
  • Work through the stages of the quest

You will get:

  • JIRA: Issue Management
  • GreenHopper: an add on for Agile development based on JIRA
  • Confluence: Wiki (documentation, project support and knowledge exchange)
  • Fisheye: Source Browsing on Steroids
  • Bamboo: Continous integration tool
  • Crowd: Full SSO support for the above tools
  • and a T-shirt if you pull it through.

So don't wait, just go for it.

Dieter
Thanks! It must be a good product but I don't want to pay for such things since I've just started learning these things.
zolizoli
A: 

i don't know if people are still on this thread, but what nobody sees is the painstaking labor taken while spending your time alone learning any individual concept. in public, while socializing with other people in your field of work or study, it seems as if there are just some people who just "get it", but i promise you, unless you are another mozart, he or she has spent many hours trying to find answers to things that, regardless of their complexity, are just difficult to answer. It may be because of a lack of good information, or the concept doesn't click with your brain, either way, unless i am stupid myself (which i know im not, or else i wouldnt be on this site), all of us on this site have spent hours learning something that have a low intellectual complexity, and when it finally clicks (by finding the correct guide, or just trial and error), it is satisfying for all of us. it is this that sets us apart from the other people who consider themselves hobbyists (unless youre a hardcore hobbyist like stamp collectors :P)

ch4c0r