What (Programming) Languages Do I Need to Know?

I'm going to make a site with functions like OzBargain or GumTree. What programming languages do I need to know?

Comments

  • +1

    For building websites the most popular languages are PHP (yuk!), Python or Ruby. Then there are the ones like ASP.

    However experienced developers seldom deal with the raw language but use frameworks which will save you a lot of effort.

    • +2

      I'm greener than fresh cut lawn. What is a framework?

      • +1

        It's a package which has lots of prefabricated parts, like connectors to databases, templates for rendering HTML to the web page, and recipes for building and testing iteratively. You fill in the code that is specific to your application.

        • Do you know the names of any frameworks I could go look at?

        • +1

          @freakatronic: Do a search for say, "PHP frameworks" and you get lots of candidates. Don't be afraid to try and discard if they don't suit.

          Here's one hit: http://www.hongkiat.com/blog/best-php-frameworks/

          And another: http://mashable.com/2014/04/04/php-frameworks-build-applicat…

        • +1

          @freakatronic:

          You really need to either google / wikipedia this stuff for yourself to get a fundamental understand
          Start with the BASIC pillars + build upon your knowledge

        • @shawncro 222: Just looking for some starting points cause I know heaps of people here know.

        • +2

          @greenpossum: Thanks for the help without making me feel like an idiot :)

        • +1

          @freakatronic:

          And Most aren't willing to share / train their skillsets as its a $$$ job
          the guys that do help out will get you to a certain level but it takes initative and your own time + learning

          UI / UX guys get paid big dollars for design + implementation of web sites / back and front ends

        • @shawncro 222: I can understand that. Those who can, earn heaps. Those who can't take jobs teaching.

        • +2

          @freakatronic:

          Not always
          the guys who teach earn big money too as they train a lot of newbie developers
          it all depends on how you adapt
          I write PHP and SQL commands all day long to make a database work for me how I want, there are a lot of connections, expressions and queries going on with my code so it all works together to bring the end user the information they need

          A lot of the bigger sites like Myob Cloud and Xero are very heavily based on Databases and pulling data in and out as needed by the customer

          You do not learn this stuff overnight, you learn it by having a passion for it and team building with different people as you expand your social network, Linkedin has a lot of good tutorials and people who you can network with, ask questions and get help with projects, you are better off probably looking into Udemy courses, some free, some paid to start your building blocks to try and understand the fundamental levels of the languages you want to study in the web world

          I am not someone who can teach others, I tend to read up a lot of different articles and learn things for myself, I then work with other people in my network and outreach for help

          UI / UX guys are very busy and I try and limit the time I take from them

          If you are serious then I would start by understanding how it all works before diving right in

        • @shawncro 222: Yep, I understand that overnight competence or success is impossible. I've made my mind up that I will make this.

        • +2

          @freakatronic: OzBargain was actually started with a kinda hybrid CMS/framework called Drupal (written in PHP). I wasted a large part of my life in Drupal. Beyond it's out-of-the-box functionality compared to a raw framework and it's flexibility compared to some CMSs, it's main attraction that drew me to it initially was that respectable organisations use it (yes, the White House!), so you can expect the "core" functionality to be both secure and reliable (security bugs in core are meant to be reported in secret to Drupal.org, but there's always a chance someone knows an exploit in core or even more likely, a module). However, Drupal can come off as deceptively simple at first. You'll think there's a free pre-existing module for everything but chances are the original developers of a module will move on to other things and the module is stuck using outdated dependencies and yesterday's popular technologies (Wordpress plug-ins often just work, sadly proving the effectiveness of capitalism…). And you won't feel like a PHP programmer when you're drowning in Drupal hooks.

  • +1

    node.js
    javascript
    php
    HTML5
    Ajax

    Endless amount of languages I could go on with

    • Can I get by on a couple? Like just html5 and php?

      • +1

        In todays world, probably not, if you were supergood at PHP and HTML5 Development then maybe
        a lot of places today are really changing the way websites are written / developed
        if you are serious about getting good + developing a skillset I would pick one of the above and learn it
        For a hobby, HTML + PHP probably can get you out of trouble
        the issue is people want a slick User Interface (UI) and pay a lot of money for a custom designed site based on a framework thats been coded to their individual needs etc

        PS I am a Network Engineer but know a litle around the development of Android / iOS apps / Web design + Coding

  • -3

    If the site is targeting English speaking people, then English would be a start.

    • +2

      English. Check.

      Any else to share beyond that you're a wiseguy?

      • +1

        You didn't make your question at all clear
        look at your introduction sentence for your thread
        Hes just stating the obvious from your question

        • I guess I could have written the whole thing in the title…

      • +2

        It might sound stupidly obvious that one would need a very good grasp of English, and come across as a sarcastic reply, but it's a point that could easily be forgotten or underestimated.

        So many people have poor English skills. Heck, it's not even the language or grammar alone but communication skills in general are important if you intend to create something that attracts people.

        • You put a good spin on it ;)

    • +2

      I found that funny. No sympathy for humour?

      "Java and C were telling jokes. It was C's turn, so he writes something on the wall, points to it and says "Do you get the reference?" But Java didn't."

      • Pointers and reference…. LOL
        C was actually pointing at debug. It was hard to see.

  • +2

    https://www.devsaran.com/blog/10-best-programming-languages-…

    Have a read of this, Yes its 2 years old but FUNDAMENTALLY it explains what you need to know

    • Much obliged :)

    • +1

      That just programming languages, what you need is a web framework;
      https://www.g2crowd.com/categories/web-frameworks

      • Thanks for the link :)

      • Fundamentally you're going to need to start with my guide first to even get to a framework stage

        So horses for courses

        • You need a bit more than few books or courses to create a Web site in this scale.
          Good planing, well structured, scalable.
          Else maintenance would be nightmare, if I were OP, I would get some professional help, unless it's a hobby project.

      • I would have thought that for learning, you'd not use a framework, so you have to deal with all the bits that a framework may give from you. Then, after understanding the whole stack, use a framework.

  • +1

    Although some courses are outdated, I can recommend Lynda.com courses for their professionalism (e.g. https://www.lynda.com/learning-paths/Web/become-a-full-stack…). Some state libraries and most universities give free access. Udemy might have good courses (it does "niche" better) but you'll have to filter out all the courses built by entrepreneur-wannabees for entrepreneur-wannabees.

    Just a warning that it's a slow process to learn everything and once you get enough skills you might sell out an get a job.

  • I would request you to visit Quora ( install the app if possible ) and search for the same question - you would have heaps of answers and then go for the popular ones which is kind of an elixir of what you at after ..

    • That's great, thanks for the help :)

  • +2

    There are clones available for the most popular sites.
    Have a look at HotScripts.com.

    I am self taught and find that if I start with something that is ready made, I can then learn about how to change it to suit my needs.
    If there is something that I cannot do or choose not to learn, there are many sites that offer the services of an overseas developer at very reasonable rates. I have had coding done in Vietnam and Macedonia. Both very professional and talented.

    envato.com is also an excellent resource. The company is based in Melbourne.

    But to start a site like Gumtree or OzBargain from a blank screen would cost many, many, many thousands of dollars. This is why there are very few competitors. Clone sites appear every now and then, but disappear because they lack the funds to promote, or the UX is so bad, or page load speed is so bad, that people fail to return. You are probably looking at a Google AdWords + FaceBook + YouTube budget of at least $50K per annum to start a decent number of click throughs - it's a very competitive field.

    You will also need a staging server for testing. It's best if this is actually a live site so that you can develop good page speed. In the meantime, a local server can start the ball rolling, so you will need a WAMP or LAMP server sitting on your harddrive. (Windows or Linux) Linux is another "language" that you may need in order to run commands on your server.

    Once you have something up and running, and assuming you are using Open Source software, you will then need to learn the basics of GIMP (or Photoshop ), PHP, MySQL, CSS3, HTML5, Javascript, and perhaps LESS & SASS, depending on your framework.
    Once this is all done and you are ready to go live, you will need a hosting account with a premium host. GoDaddy and others will not cope with any type of volume sales.

    If your business is mainly in AU, you will need an AU based host to ensure maximum page load speed. A shared server may be OK in the beginning, but you will eventually need to move to a dedicated server with lots of CPU's and lots of RAM.

    And allow at least 12 months of solid work before you go live. And at that stage you will be looking at a major upgrade

    • That's an awesome run down. I appreciate your effort :)

  • +1

    OP
    try
    https://www.codecademy.com/learn/all
    and pickup few courses, some course may take couple of days, but many should finish in few hrs.

    • I'll have a look for sure, thanks :)

  • +1

    Python - Probably best beginner language, will teach you good practises -Not static typed
    Golang - Simplest system language, reduced features mean easier to learn, nice stdlib, -opinionated
    JavaScript - good prototype language, de facto language of the web (So decent to learn), unless no choice never implement a large project in it
    Java - Defacto industry language, "seen" as the language for more complex systems thus higher wages
    C - Don't really recommend to learn in depth unless you want to go into that career, but excellent to learn the fundamentals of a computer, at least learn up to pointers and basic data structures with pointers.
    Haskell etc. - Good to learn the paradigm, little jobs but very passionate

    Ps. I put it in roughly the order I would learn if I was new, though if you're passionate/find it easy, push C up, it will really help your understanding.

  • +2

    For any website, you will need the following: HTML, CSS, and at least a little Javascript (start with jQuery, move to Angular/React or whatever the next thing is in a year or two when you're ready for a front end framework).
    Then you'll (probably) need a backend language and framework. Personally I recommend Django as Python is fairly easy to learn and Django is very full featured and has excellent educational resources. If you are running on Mac or Linux then Python is already on your machine so it's pretty easy to get started. But there are many other good frameworks both in Python and other languages. Try a few and see what you like. Personally I see php as a big mess but it runs a lot of the web so it must be doing something right.

    In disagreement with some of the comments above I don't see that experienced programmers are not inclined to help newbies. Find a meetup group in your area for the language or framework you're interested in, show up with enthusiasm and informed questions, and people are usually very happy to help. Teaching and mentoring beginners is part of the industry and part of the career progression of a good developer. Learn how to ask good questions on Stack Overflow (or better yet, find the question that no doubt already exists that solves your problem and upvote it). If you are a woman, a person of colour, or in any other minority group that may need special assistance there may be free workshops or courses set up just for you - check out https://djangogirls.org for example.

    Source: self taught software developer, employed.

    • Is it a big deal to try different frameworks? How much work do you have to do to get a good feel for a framework before you abandon it, without abandoning it to early just because you haven't learnt enough about it?

      • +1

        Good question. In the case of an absolute beginner, it would be harder to get a good feel of a framework because you'd also be learning a lot of basic concepts at the same time. Trying a framework might take half a day or a day of your time if you don't know what you're doing. Most (mature) frameworks will have some kind of official basic tutorial. My suggestion would be to just do that tutorial (if there is no tutorial, that is not a good framework for a beginner). If you can get through the tutorial then you've done well, and if you managed to derive any kind of understanding of what you just did (rather than blindly following instructions), and you feel like you could do it again, then you've done really well and that framework is probably a good one to work with. Do that with two or three frameworks and you'll get a good idea. In my case I went with Django (after learning and using PHP without any framework for a couple of years) because I heard that Python was good for scientific applications, I saw that Django has a good GIS extension, which was important because I planned to make a GIS application for ecologists; and I knew that one of the organisations I worked for used Django a lot. I tried the official tutorial, it was pretty straightforward, and there was plenty of third party tutorials and stack overflow posts, so I knew I would be able to find the info I needed to continue with it.

        Note that blindly following instructions is ok some of the time; even as an experienced developer there's a lot of times when I choose not to go down a rabbit hole of trying to learn some computer science trivia when I know that if I invoke a certain function I will get a certain outcome; the 'why' is not necessary. The trick is to know when it's worth going down that rabbit hole or not; my advice for beginners is don't go down any unless you know for sure that a lack of knowledge in a certain area is preventing you from doing something you need to do. Computer science is a vast field - but you don't actually need to know very much to get started, so just learn to use one or two tools well and then expand from there.

        • Thanks for that, that's really helpful.

          I'm learning Python at the moment, and I'm also doing an online course that happens to use Python and the Bottle framework, though it stresses that Bottle isn't a good framework for production systems (it's sort of incidental to the course, which is MongoDB). I understand that Django is much more fully-featured and robust, though.

          I'd like to cross-skill from RDBMS to the big data area and it seems that Scala, Python, Java and accompanying frameworks are pretty much requirements. The Java world seems too enormous to pick up in a reasonable time, but maybe I can get across enough of the above to be useful?

        • +1

          @kiitos: I can't advise you directly because I haven't done much big data stuff, but it seems unlikely that you would need a strong grasp of all of those languages to get started. Java is big but there are some good frameworks (Spring is one I've heard good things about, although I haven't tried it myself), and there's a lot of good tutorials and training resources. I would confidently guess that if you can get a reasonable grasp of Python that will be enough of a stepping stone that even if you need to dip your toe into Scala and Java to get a job done, you'll be ok.

    • I ended up just going with wordpress for version 1.0 of my site anyway.

      www.wants2buy.com

  • +1

    SQL

    SQL (pronounced ‘sequel’) can be found far and wide in various flavors. Database technologies such as MySQL, PostgreSQL and Microsoft SQL Server power big businesses, small businesses, hospitals, banks, universities. Indeed, just about every computer and person with access to technology eventually touches something SQL.

    I would recommend you to go for SQL.

Login or Join to leave a comment