Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Question for the web jedis :)

Options
  • 16-04-2014 10:48am
    #1
    Registered Users Posts: 310 ✭✭


    Hi Guys,

    Im going into my third year of my comp science degree, and i have to come up with a project, and I have had the idea to build a site for martial arts where basically a user on the site can log into his account for his or her club and add an event like a fight night or competition and create a basic event but when the event is over and they want to post the results they input it into the site and for each competitor entered in the results it would create a fighter profile with wins and losses record and from there i could calculate rankings per style of martial arts based of the wins and losses.

    My question is what language would be the easiest/best to build it in im thinking about php/mysql and comment or ideas are welcome :)

    Thanks


Comments

  • Registered Users Posts: 3,886 ✭✭✭cgarvey


    My question is what language would be the easiest/best to build it in

    The one you're most comfortable in (or most want to learn)?!

    All common languages (scripted and compiled) have decent web app frameworks available to make life easier for you (handling sessions, cookies, forms, requests, etc.).

    Stick to what you're used to, unless you have a different goal (like hoping to showcase this on a CV for a Ruby on Rails job, or something).


  • Registered Users Posts: 310 ✭✭thelibertyboy


    Hey thanks for he reply basically i want to learn a new language i dont really know any,
    I can build html/css sites but i thought id need to get into php/mysql to build what i want to build.
    I use sql on a regular basis in work and our bug tracking site is built with php/mysql so i thought could use this project to learn php/mysql and that could get me more experience for work but i mainly want to build my own a good site so for what i wanna build would php/mysql be a good idea to build it in or is there a better way to build it ?

    Thanks,
    Liberty


  • Moderators, Sports Moderators, Regional Abroad Moderators Posts: 2,639 Mod ✭✭✭✭TrueDub


    Im going into my third year of my comp science degree
    basically i want to learn a new language i dont really know any,

    Really? In Year 3 of a comp sci degree you don't know any programming languages that can be used for this type of project?


  • Registered Users Posts: 310 ✭✭thelibertyboy


    We did java in first year then you decide if you want to go down the computing or it management side and the difference is they take out programming :/ im kind of regretting my choice now because im starting to realise i want to do web development :(


  • Registered Users Posts: 2,213 ✭✭✭MajesticDonkey


    If you're using PHP/MySQL check out the CodeIgniter framework.


  • Advertisement
  • Registered Users Posts: 3,886 ✭✭✭cgarvey


    Hey thanks for he reply basically i want to learn a new language i dont really know any,
    I can build html/css sites but i thought id need to get into php/mysql to build what i want to build.

    Well PHP/MySQL is a good place to start. You'll almost definitely want to use a web app framework (like the aforementioned CodeIgniter or CakePHP, etc.). It makes it much easier for you to make a better web app. You'll need to learn a few concepts (PHP, for a start, but also the framework's way of doing things), but there's plenty of docs/tutorials to help you get started. Using a framework also means you have to worry less about common security exploits (SQL injection, and the like), and just get on developing/designing your app.

    Given what you've said so far, PHP/MySQL ("LAMP"/"WAMP") is what I'd suggest.


  • Registered Users Posts: 6,207 ✭✭✭miralize


    If you're using PHP/MySQL check out the CodeIgniter framework.

    Laravel 4 is a joy though! Definitely prefer that over codeigniter


  • Registered Users Posts: 2,213 ✭✭✭MajesticDonkey


    miralize wrote: »
    Laravel 4 is a joy though! Definitely prefer that over codeigniter

    I've gotten to the stage now where PHP is being slowly weaned out of my chosen language list, so I mightn't be too up to date with the latest frameworks :D


  • Registered Users Posts: 872 ✭✭✭grahamor


    miralize wrote: »
    Laravel 4 is a joy though! Definitely prefer that over codeigniter

    +1 on Laravel 4


  • Registered Users Posts: 1,687 ✭✭✭Media999


    What college is this that takes programming out of a computer science Degree?

    What skills will you actually have when you graduate?


  • Advertisement
  • Closed Accounts Posts: 19,777 ✭✭✭✭The Corinthian


    I'm going to piss everyone off now and suggest you do it as a dotNet or Java site, as experience in those will prove more useful in the long run - salaries for developers in those languages/technologies are higher than for PHP monkeys.


  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    We did java in first year then you decide if you want to go down the computing or it management side and the difference is they take out programming
    I don't think my jaw's ever dropped that far that fast before. Seriously, is this the Scott Adams school of computer science or something?


  • Administrators Posts: 53,438 Admin ✭✭✭✭✭awec


    Sparks wrote: »
    I don't think my jaw's ever dropped that far that fast before. Seriously, is this the Scott Adams school of computer science or something?

    Huh?

    You can easily take a computer science course and not know how to code. Computer science != programming.

    You can take the modules on theoretical comp sci for example. Or the operating system stuff. Even data structures and algorithms tends to be theory based. Networking pops up a lot as well.

    It's hard to avoid programming entirely but there is a difference between taking the "Introduction to Programming" course and knowing how to write code.

    Some colleges offer "Software Engineering" as a seperate degree to "Computer Science". My college (QUB) also offered a "Games development" course.


  • Registered Users Posts: 1,687 ✭✭✭Media999


    awec wrote: »
    Huh?

    You can easily take a computer science course and not know how to code. Computer science != programming.

    You can take the modules on theoretical comp sci for example. Or the operating system stuff. Even data structures and algorithms tends to be theory based. Networking pops up a lot as well.

    It's hard to avoid programming entirely but there is a difference between taking the "Introduction to Programming" course and knowing how to write code.

    Some colleges offer "Software Engineering" as a seperate degree to "Computer Science". My college (QUB) also offered a "Games development" course.

    Name one so i can take a look at the modules involved. Interested in taking a look at a Computer Science Degree with no programming.


  • Administrators Posts: 53,438 Admin ✭✭✭✭✭awec


    Media999 wrote: »
    Name one so i can take a look at the modules involved. Interested in taking a look at a Computer Science Degree with no programming.

    It's unlikely you'll find one with no programming at all - you'll see it somewhere at some point. But that doesn't mean you'll really know what you're doing at the end of the course.

    My old course (I started this like 7/8 years ago so it has probably changed) has:

    Stage 1
    Computer Architecture Fundamentals of Programming - very, very basic
    Introduction to Multimedia - no programming
    Programming Challenges - very basic
    Science of Computing - no programming

    Stage 2
    Computation Theory - no programming
    Data Structures and Algorithms - no programming
    Database Systems - basic stuff, more about the theory
    Games Programming - some programming, but it was XNA
    Multimedia Systems - no programming
    Networks and Communications - no programming
    Software Engineering and Group Project - I think this was a game.
    Tournaments in Computing - didn't do this.

    Stage 3
    Agile and Component-Based Programming - optional
    Artificial Intelligence - optional
    Computer Vision - optional
    Concurrent Programming - optional
    Database Technology - optional
    Formal Methods - optional
    High Performance Computing - optional
    Multimedia Systems - optional
    Operating System Concepts - optional
    Programming Language Implementation - optional
    Software Engineering project - this is your final year project

    http://www.qub.ac.uk/schools/eeecs/CSc/


    The bit after the hyphen was added by me.

    My point was not that you can totally avoid programming, just that you can complete a computer science course and not be good at it. :)


  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    Data Structures and Algorithms - no programming
    And right there, I'd be asking for my money back.


  • Administrators Posts: 53,438 Admin ✭✭✭✭✭awec


    Sparks wrote: »
    And right there, I'd be asking for my money back.

    Data structures and algorithms is pretty theoretical. You don't learn any particular language. Why would you?

    They may show short snippets of code but they aren't going to teach you how to write something in C for example because that's not the point.

    Its all about the big O, Cartesian products and all that.


  • Moderators, Society & Culture Moderators Posts: 9,689 Mod ✭✭✭✭stevenmu


    awec wrote: »
    Computer science != programming.

    I definitely agree with this, and I think learning Computer Science is too often confused with learning to program. But, I do think programming is an essential component of learning computer science. It's needed to demonstrate principles, to give practical exercises to students to help them learn principles and to later evaluate their understanding of them.

    Teaching Computer Science without doing any programming would be like teaching Physics without doing any maths, sure you could talk through ideas and explain things with diagrams and so on, but sooner or later you need to work on some equations to really understand the subject matter.


  • Administrators Posts: 53,438 Admin ✭✭✭✭✭awec


    I agree it's important and that you can't avoid it entirely but not all computer science graduates are going to be people who can code anything substantial is my point really. I would say most probably take the course to end up in software development but there are some who won't go down that road.

    They may be able to demo some random algorithm in C++ or whatever but that's a million miles from being able to engineer a project. Using code to prove a theory vs building something.


  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    awec wrote: »
    Data structures and algorithms is pretty theoretical. You don't learn any particular language. Why would you?
    Because if you never implement it, you never actually grok it. You don't need to learn to do it in $LANGUAGEDEJOUR, but if you don't understand how the underlying machine and language affects what you're trying to do, you'll wind up not knowing what's going on and you might as well have read a free book online than pay tuition because the two experiences will have about the same level of worth.

    Seriously, if you don't know what the underlying machine is like, you can forget about doing any kind of optimisation at the design level (look at cache conscious data structures for a bloody excellent example). You can forget about being able to get valid back-of-the-envelope numbers, and as for any of the we-don't-know-how-to-do-this-yet stuff that people work on, well you'd be as much use as a chocolate fireguard.

    There is a good reason why even Knuth's books, arguably some of the most abstract books on CS's basics that are worth reading, invented their own language to teach what he was teaching -- and it's that he knew you had to have a machine model and language underneath everything or none of what you're talking about in a data structures & algorithms course makes sense.


  • Advertisement
  • Registered Users Posts: 1,687 ✭✭✭Media999


    What job would someone who graduates from this course be expecting?

    Any course ive seen that was in Computer Science but no programming went heavy into something like databases.

    When i had a Data Structures module it was just all programming with collections and frameworks. Cant imagine it being anything else really.


  • Registered Users Posts: 1,687 ✭✭✭Media999


    awec wrote: »

    My point was not that you can totally avoid programming, just that you can complete a computer science course and not be good at it. :)

    Just noticed this here. This hits the nail on the head.

    People should know how to program but for whatever reason dont. maybe copying others work and scraping passes in programming modules for 4 years.

    Their own fault really. To look at programming languages daily for 4 years and still be clueless is beyond unbelievable.


  • Registered Users Posts: 6,037 ✭✭✭Talisman


    My question is what language would be the easiest/best to build it in im thinking about php/mysql and comment or ideas are welcome
    Easiest/Best don't always go hand in hand - easiest is to use what you know already as it reduces the learning curve. In this case, best depends on what you want to get out of the exercise. As The Corinthian has already made the business case for Java and .NET I won't mention them.

    Node.js and MongoDB: Node.JS is a platform for developing lightweight event driven applications in JavaScript. MongoDB is the leading NoSQL database at the moment and it stores the data records as JSON documents. Given the nature of the MongoDB database you can store any information you want without having to go and update a table structure, you just add the new field to the JSON document before you save it. The entire project would be JavaScript end to end. Does that make it sound too easy? Caveat: Node.JS is used to develop real-time, event based, network applications in JavaScript. The fact that it's real-time and event driven means that code executes asynchronously so flow control can be a head wrecker for developers coming from other programming backgrounds (Google "Node.js callback hell").

    If you are able to get your head around the asynchronous nature of the platform you could knock together the system quite quickly using some frameworks and expand upon the original premise to add real-time bells and whistles, example: judges scoring - instead of having to enter the data after the event you could add an interface to it in order to record the scoring 'live'. For window dressing you can use the likes of D3.js to visualize results, see Wimbledon 2013 as an example.
    Resource: The Node Beginner Book

    Ruby is one of the easiest object-oriented languages to learn. Rails is the MVC framework that brought Ruby into the mainstream. Sinatra is a Domain Specific Language that offers a minimalist approach to creating ruby applications quickly.
    Resource: The Little Book of Ruby

    Python is also one of the easiest object-oriented languages to learn. Django is the principle web application framework for Python that is used in the wild. Web2Py is a more lightweight framework.
    Resource: Learn Python The Hard Way

    PHP / MySQL : Use the Laravel framework, it has brought PHP into the 21st century and may spark a renaissance in PHP development.

    There is no right or wrong answer to your question, ultimately you need to decide how far you want to dip your toe in the water.


  • Closed Accounts Posts: 19,777 ✭✭✭✭The Corinthian


    awec wrote: »
    Data structures and algorithms is pretty theoretical. You don't learn any particular language. Why would you?
    Because designing an algorithm is only half of it, implementing it is just as important and that means turning your theoretical solution into practical code.

    I have no idea how you could competently teach it without employing code. Can you imagine - assignments would involve designing an algorithm which may or may not work, because there's no way to implement or test them?


  • Administrators Posts: 53,438 Admin ✭✭✭✭✭awec


    Because designing an algorithm is only half of it, implementing it is just as important and that means turning your theoretical solution into practical code.

    I have no idea how you could competently teach it without employing code. Can you imagine - assignments would involve designing an algorithm which may or may not work, because there's no way to implement or test them?

    But that's not the same. They may say "create algorithm x" in C but they are teaching you the algorithm, not the language.

    It's theoretical mostly - the idea being that if you do a programming module you'll be able to relate to it.


  • Closed Accounts Posts: 19,777 ✭✭✭✭The Corinthian


    awec wrote: »
    But that's not the same. They may say "create algorithm x" in C but they are teaching you the algorithm, not the language.
    I'm aware that the language is not the central focus, but say you've learned the theory behind an algorithm or are asked to develop your own, what do you do? Algorithms are ultimately implemented in code and even translating one from theory to implementation there are better and worse ways of doing so, not to mention that in practical terms doing so and testing it is the proof of the pudding as it were.

    Coding does not have to be the focus of the area to still remain important to it. It can still remain 80% of the subject, but without code (doesn't even have to be a full programming language), or at least pseudo-code, I would think it very difficult to teach competently.


  • Registered Users Posts: 40,038 ✭✭✭✭Sparks


    awec wrote: »
    But that's not the same. They may say "create algorithm x" in C but they are teaching you the algorithm, not the language.
    It's theoretical mostly - the idea being that if you do a programming module you'll be able to relate to it.

    It's not theoretical when large swathes of data structures and common algorithms exist in the form they do because of the underlying machine architecture.

    I mentioned cache conscious algorithms earlier because they're an interesting example of this. When I did my undergrad degree, memory was scarce. We actually had a presentation given by NetSoc just after I graduated where one of the college sysadmins brought along a gigabyte of memory to show everyone, and it got oohs and aahs because nobody had seen that much RAM in one place before - and it wasn't going to go into just one machine after the presentation either, but two. Today, things have changed somewhat :) And so have the data structures and algorithms we use - not because the ones we were taught were theoretically unsound but because the underlying machines changed and that changed things about how we did things on them.

    For example, if you had a lot of records that you wanted stored with occasional writes and lots of reads in 1997, you used a linked list of structs or something similar (depending on language, but let's roll with C for the sake of the argument for now) because the insertions were easy in the linked list structure and you could keep it in sequence to reduce seek times. Today, you could use a single contiguous block of memory and write the data to it sequentially because the boost to performance from the cache prefetches (and write buffering) is so high that it mitigates the extra work for a write (the cache prefetch not being well able to handle the random jumps a linked list would eventually build up with successive writes).

    Some languages will expose this kind of thing more than others; but if you don't write examples for yourself in this kind of course in some language, you don't really get to properly understand the material. The old adage holds true - we learn by doing.


Advertisement