0

I'm quite new to the field of computer science but I think I've got a pretty decent idea for a website to aid classroom CS learning and collaboration. I'd really like to develop the website from the ground up and make it a sort of pet project in hopes of eventually getting it out on the web for free. Hopefully I can get some teachers to adopt it for use with their classes.

The problem is that I honestly don't know where to start. I've got the idea but I don't have enough formal education to guide the implementation of my idea. The site should have quite a bit of functionality in the long run. I'll need to be able to store user and class data/files as well as offer discussion boards and other things.

Without getting into too many details, what is the best way for me to get started? What languages and databases should I be most interested in as I build the site and ensure scalability and future functionality developments? I would really appreciate any information you could give me on how to structure the project/stack as I don't have much of a clue at this point. I have the idea. Now I just need a little bit of help getting started.

Thanks!

Mike
  • 93
  • 1
  • 12
  • Sounds like you're recreating Moodle. Anyway, universities are going to tend towards open source, so PHP/Python/Ruby/etc are likely you're best bet. – Corbin Apr 03 '12 at 06:27
  • First thing, Know HTML, then some Javascript, then CSS. You can do a lot with those three. After you are comfortable with that move to a server language like php, asp.net with either vb or c#, or jsp among many others. You decide. I believe php websites are lighter than the .Net Framework and easier to understand for someone that is just starting. The end result is the combination of all the ones mentioned above and the server languages. For databases, you have a lot of options MySql Server, MSSQL Server, Oracle among others. – user710502 Apr 03 '12 at 06:30
  • I remember using moodle once a long time ago and it didn't seem to have some of the features I'd be interested in providing. I'd say there definitely are some similarities though. Thanks for the recommendations and moodle mention. Obviously there's no need to recreate the wheel so I will look into what moodle is capable of soon. – Mike Apr 03 '12 at 06:34
  • For those voting to close, I think this question can be recoverable with a little more information from the OP. It was clearly and well written, but currently has a vast number of potentially conflicting answers. – Josh Smeaton Apr 03 '12 at 06:41
  • What do you think I should add to clarify? I'd certainly like to avoid having it closed. I tried to be straightforward but it's hard to ask a question about things you aren't really even fundamentally familiar with. – Mike Apr 03 '12 at 06:47
  • @Mike, open questions like this tend to get closed and deleted. More specific questions are usually easier to answer and survive. For instance, choosing a platform (windows or linux), and a language (python or .net), can help narrow the focus, so answerers can provide better and more specific answers. Try to answer some of your own questions regarding technology choices, and then edit those into your answer if possible. – Josh Smeaton Apr 03 '12 at 06:54
  • Will do. Thanks for the input anyway. Just trying to get the ball rolling with a little bit of input. – Mike Apr 03 '12 at 06:58

2 Answers2

0

Learn HTML to start with and keep improving as per needed with css , javascript. You won't need more then this.

Abhishek Maurya
  • 1,803
  • 1
  • 15
  • 12
0

There are definitely already projects out there that will (more than likely) do everything you're currently considering. That said, there's immense benefit in doing a project like this for personal development - you get to learn, and you expand your public portfolio. If you run the project as open source, you can also demonstrate your ability to work with others. All very good (hireable) attributes.

Are there any programming languages you already know? Are there any that your course is going to be teaching that you know ahead of time?

There are so many different languages and frameworks available to choose from, but I'll only mention a few.

  • Language: Framework
  • .NET: ASP.NET MVC
  • python: django
  • ruby: ruby-on-rails

I'm a huge fan of django. Python is quite a nice language to learn. I'd recommend django purely from a biased point of view. Python runs on Windows, Linux, and Mac, though you probably don't want to host python on windows (culture more than ability).

Conversely, if you really like Windows, ASP.NET MVC makes building out websites very very easy. Mono does allow you to run .NET on linux and mac, but you might find support lacking, and I wouldn't suggest using Mono for your first project.

PHP is (was?) another popular language for building websites in. There are tonnes of web frameworks available for PHP. Popular opinion seems to be that PHP makes it easier for developers to write bad code, though it is possible to write good code with PHP.

Unfortunately, without knowing a rough direction in which you're headed, it's nearly impossible to offer some concrete advice. Database choice will generally come down to what language and platform (linux/.net) you're targeting. Web server also fits this profile. Once you decide on a language, narrowing down the other choices become a lot easier.

Josh Smeaton
  • 47,939
  • 24
  • 129
  • 164
  • I'm most proficient with java at this point though I'm probably going to pick up a lot of ruby this summer on my own. I definitely understand that I might only be filling a gap that has already been filled. That's definitely where the personal project for development part comes in. I think it would be a really cool experience to get something nice up and running. My guess it that I'll probably end up pursuing the development with Ruby on rails I guess. Thanks for the advice. There's definitely a lot to think about at this point. – Mike Apr 03 '12 at 06:41
  • 2
    I'd recommend avoiding java for a web project. Purely because I hate java, but you don't really hear about many web sites created with java these days. – Josh Smeaton Apr 03 '12 at 06:43
  • Absolutely. It seems my university has a bit of an obsession with java and a lot of my future classes will deal with java. so to some extent, i'm also looking for opportunity to pick up a new language or two. i don't really want to walk away with a resume showing proficiency only in java. – Mike Apr 03 '12 at 06:45
  • @Mike, most universities that I'm aware of have a java-hard-on. My uni was no different, though we did look at some other languages also. It sounds like you're super keen - learning new languages will be a massive tick in the box come time to find a job, and the act of learning will make you better than most of your peers regardless. Best of luck. – Josh Smeaton Apr 03 '12 at 06:52