May 9, 2019

OK, I'm going to start programming, with what language do I start?

I started with php and after a few months I had no continuity. The truth is that I always wonder if this is the best option for someone who does not know anything about programming. I would like to develop everything that goes through my head without limitations. I can make a plugin for wordpress or develop a platform that comes to mind. Which language fits in this? and make it simple to start

  1. 6

    Web languages are probably the best place to start, because they're basically essential if you want to build an online business, they're relatively easy to learn (tons of resources online), and you quite possibly never need to learn anything else. You can do almost anything on the web with just HTML, CSS, and JavaScript. It helps to invest some time into understanding how the web and browsers work, too — servers, requests, responses, the DOM, and all that.

    Disclaimer: It's been a long time since I've taught anyone to code and a much longer time since I learned myself, so I'm an old fuddy-duddy by now.

  2. 3

    JavaScript and Python are both great languages to start with because there is very little barrier to entry for a new learner. You can run some JavaScript in Codepen with literally zero setup time, and most computers come with Python pre-installed.

    Python is also a great choice because it's a very clean language. It doesn't have a lot of boilerplate you have to write just to do something simple.

    I think, however, it's unrealistic to expect one language to let you do anything that comes into your head. Even languages that are very versatile may not be the best choice for a given problem.

    The good news is that, once you have one language down, learning the next language will be orders of magnitude easier. So don't stress too much about choosing the perfect one.

  3. 2

    Edit: You said you want to make WP plugins. That makes your decision simple.

    You need to learn PHP if you're making plugins for WordPress.

  4. 2

    I learned programming with php. Then I tried different languages depending on the type of project I made. I the end I only focus in python because I can do everything with it. Web, games, data analysis, desktop software and more.

  5. 2

    It seems like your main interest is building websites / mobile apps so I'd start with the javascript basics (https://www.codecademy.com/learn/introduction-to-javascript) then build a very simple website sooner than later. Javascript is very versatile for app development nowadays so you can build your frontend and backend with it. Javascript unto itself isn't that interesting but the frameworks that are built on top of it are. For your frontend framework, I'd recommend using React and learn it by doing a hands on tutorial (https://reactjs.org/tutorial/tutorial.html). For your backend framework I'd recommend using node and learn with a short tutorial (https://www.codecademy.com/learn/learn-node-js). When it comes to deploying your app I'd use Heroku (don't worry about this until you have a website running locally).

    This all seems like a lot at first but making very small, incremental changes to a known good example and verifying the small changes you make do what you expect (using a short feedback loop) make all of it much more digestible. Along the way you will need to learn the basics of HTML and CSS (just follow another short tutorial to get your feet wet, most of the learning will come by trying to build functionality into your project. Once you get all this you can play with things like Typescript and Firebase but I would not go down that rabbit hole until you have an example website deployed.

    The other great entry language is Python which has been picking up a lot of traction in the scientific / machine learning / big data community. It is a great scripting language (i.e. you need to write a program to run once to perform a computation -- a good example would be to scrape popular movie ratings/reviews from IMDB and store them in a local text file). It is also good to use for a backend. The two big backend frameworks built on python are Flask / Django. Flask is simpler so you can set up an API in 10 lines of code but you don't get as many goodies out of the box. Django has all the goodies out of the box (e.g. automatic user management, admin features, etc.). Python isn't really used for any serious frontend frameworks yet.

    Hope this gives you a good place to start, or at least a bunch of buzzwords to google!

    1. 3

      I would not recommend php to start? I am very rooted in wordpress and I would like to make plugins in the future

      1. 5

        If you want to build WordPress plugins, you'll definitely need to learn PHP at some point. I don't think there's a way to get around that.

      2. 3

        Definitely PHP and Javascript if you want to focus on WP plugin development.

  6. 1

    If your already comfortable with HTML, CSS. I would definitely take a look at jQuery to start making those pages a bit more interactive. When trying out jQuery - I would definitely do what csallen was recommending and try and get a basic understanding of making server requests etc. Once your comfortable with that - I would look into using something like Ruby on Rails.

    People on here may slander me for saying Rails because it's not a fancy new framework - but truth be told it's really great for beginners and once you have the concepts down, you'll be able to build anything really quickly. Plus there are a bunch of really great beginner tutorials with Rails.

    1. 1

      Also gonna pitch in here for rails. Take it as someone who has tried node.js/express, rails is much easier to work with for beginners.

      You may have heard about the whole convention over configuration debate with web frameworks. Well convention is much more beneficial for beginners. It doesn't help if there's 10 different ways of doing 1 thing and you have no idea whether there's subtle differences.

      People also say rails has magic in that there's parts of it where you're not sure how it works. But if your focus is on shipping a product then the magic is actually a good thing. You could be spending your time on shipping instead of figuring out the details of metaprogramming.

  7. 1

    For web stuff - JavaScript, hands down. Building the front and backend in the same language will dramatically decrease your learning curve. You can even build mobile apps in JavaScript, if you like.

    1. 1

      Hey,

      JS UI framework is gathering consideration not only for its straightforwardness and convenience yet in addition because of what it conveys to the table—Efficiency, Security, and Low-cost results.

  8. 0

    Full-time self-taught developer here!

    I would recommend you to start with JS because you can use in on the front-end and backend as well.

    For the front-end stuff, you can try Vue and/or Angular because both of those are frameworks which means that they do some of the Magic behind the scenes to make your app work. React on the other hand is very much the wild wild west of programming. You can do the same thing in 10 different ways depending on your own coding style, the type of app that you are building so on and so forth.

    If you are just starting out, don't get discouraged. It takes years before being able to code properly.

    Or if you really want to commit to this and have a backup in case your app does not make you any money, you can go to a Bootcamp, spend 3 months learning how to develop and then you can work on your own apps at night and/ or during the weekend while working as a dev during the day.

    That's what I am doing at the moment. I will only resign from my jobs when I can pay myself 75% of my current salary through my own business.

  9. 0

    I just posted something related to this here: https://www.indiehackers.com/post/b53e3537a9

    Been teaching 50+ people to code in a bootcamp since November and IMO the best way to do it is with a structured curriculum that has all of the fundamentals and takes you to a product launch in a short period with no boring tutorials on unrelated stuff.

    Before I was teaching I tried with lots of tutorials free and otherwise on PHP, JS and even Java but none where as easy and enjoyable as when I started to really try to learn Ruby.

    I would suggest the pragmatic studio courses for a really technical introduction. If what you really want to launch is code related would you mind sending me an email at [email protected]? I would love to help you learn the fundamentals of Ruby as I said on my post before.

    Good luck!

  10. 0

    A lot of people have recommended js which i totally stand behind. Worth consideration is python or learning some functional programming paradigm in js. I think learning functional programming is a nice way for beginners to start to intuitively grasp some more academic cs concepts rather than the blocking and tackling of web dev. Can't go wrong, just my 2 cents

  11. 1

    This comment was deleted 4 months ago.