3
15 Comments

What to learn first?

Background - I was a software engineer in a midsized enterprise back in the early 2000's, developing and bug fixing in C, hacking together test tools in python, and mostly learning specs and dealing with interop stuff. Which is to say, I'm not afraid of code, but I have zero experience with web development, beyond running a basic Wordpress blog.

Since then I've been homeschooling my kids and now I want to develop a homeschool planning and tracking app. So, members login, go through some guided stuff to develop their plans, then they get a personalised dashboard that shows what they've chosen to focus on, where they're at, generates reports of what they've done to pass on to education authorities, etc. This will come out in stages with the first one being a very basic personalised dashboard.

What am I going to need to learn to pull this together? Start with javascript? PHP? Ruby on Rails (I have a book on that - I did learn to code in the 90s after all)? Could I hack it together with a bunch of Wordpress plugins? I'll be learning from scratch so I'd rather learn the right thing once than hack my way up the ladder, ideally (though, hey, I'm not adverse if it works).

on February 22, 2020
  1. 1

    So, as a start I came across The Odin Project as recommended in another thread and am starting to quickly run through that to get my head round the basics of the key technologies - then I’ll dig in deeper from there.

  2. 1

    I'm in a similar situation. I was a programmer 15 years ago. But since then working as an IT manager (no coding myself). Recently I quit corporate job to do my own startup. I did some recearch about platforms and languages and decide the following:

    • Flutter/Dart for frontend
    • Firebase for backend
      And I do not regret about my choice. It's super easy and straightforward, tones of plugins for everything you might think off.
    1. 1

      Thanks, I’ll take a look at those.

  3. 1

    It all depends on what your goal is. If you just want to create something functional no matter what's inside you would probably do it creating a desktop app with C#. It's really, really easy.
    If you want to learn how to create modern web apps you need to know a bunch of technologies:

    • frontend (JS + some frameworks like React or Vue)
    • backend (Python for example)
    • databases
    • database ORM in backend's language
    • HTML/CSS
    • something to build frontend together (like Webpack).
      You can check my boilerplate for SaaS apps that already has dashboard, database models, frontend and backend, all configurations, authentication, login, and registration. It still requires some work to build and run but you would get the idea what modern web apps look like (https://www.saasforge.dev/)
    1. 1

      @Zencentric thanks, the boilerplate looks like it will be a great start to figuring out what’s what - I find tinkering with something running is often a good way to learn.

      1. 1

        No problem, let me know if you have any questions - my contact information is in the profile.

    2. 1

      I really disagree with your assertion C# would only be viable for desktop apps. C# is a powerful full stack technology with great community support, and near zero start frustration getting it hosted on Azure.

      MVC or raw JS / HTML front end, Web API for REST APIs, OAuth for API and UI security, then depending on your storage needs pick a DB more on cost than simplicity and build your model to optimize your storage selection. (Prevents scaling nightmares in the future). For anything complex I'd stay away from Entity Framework (or any ORM honestly) they're far too limiting. C# with .NET Core for cheaper hosting and future proofing and your golden.

      If you want a single full stack language, JavaScript / Node.js are a great choice and it's gaining more ground every day but if YOU want to hire and grow people that already know your technology at expertise levels Node.js ups the cost factor for resources (but honestly is easy to expect devs knowing other languages + web focused JavaScript to get up to speed quickly, but costs time)

      Truthfully it depends what your after, and what your plans look like.

      1. 1

        I really disagree with your assertion C# would only be viable for desktop apps.
        I have never said it. I just said C# would be a really great choice for desktop apps. It's not the same that claiming it's not suitable for web apps.
        But from my experience, creating web apps with .Net is not easy and not cheap. Azure is not a free platform and applications themselves are not just a couple of files and libraries. I checked asp.net core and it still looks monstrous to newbies (unlike Python/Flask or Node.js).

        1. 1

          I'd suggest your looking at the wrong materials 😜 .NET complexity wise is no worse than any other language. MVC.NET is pretty easy, HTML templates with Razor and Models hydrated and returned from the controller.

          Azure has plenty of "free tier" hosting applications for PoC and development needs and deployment with .NET is easier and boxed in your IDE than most other languages. Happy to give more tips if learning .NET is your desire but that statement is inaccurate and misleading that it's "monstrous" in comparison

          1. 1

            I'd suggest your looking at the wrong materials 😜
            I don't think my experience could be consider wrong materials... 10+ years working with .Net, 3+ working with asp.net mvc.
            .NET complexity wise is no worse than any other language
            Again, you attribute something that I've never said to me.
            I have never said .Net and C# are complicated themselves, I only expressed my opition about the asp.net mvc framework, and again with comparison with other frameworks.
            I love C# and believe it's the best programming language.
            MVC.NET is pretty easy, HTML templates with Razor and Models hydrated and returned from the controller.
            I know and partially agree. Partially - because if you want to do something a little bit more complicated than an example from tutorial you could be stuck easily. Also, with the comparison with Python and Flask it still looks monstrously. Again, it's my own experience and it could be different from yours.
            Another thing is this language and framework are developing all the time, so I assume maybe now asp.net mvc is much better than 5 years ago (when I stopped using it).
            Azure has plenty of "free tier" hosting applications
            It does but SSL is available only on paid accounts and it's not cheap at all (I checked it recently) what makes "free" tier pretty useless. Correct me with the real example if I'm wrong.
            Happy to give more tips if learning .NET is your desire but that statement is inaccurate and misleading that it's "monstrous" in comparison
            How many years of experience do you have ? ;-)

            1. 1

              Not all commentary was direct response to you agreed. I suppose years of experience could be tainting my opinion 😅 at this point I'm a VB transfer to VB.NET and then to C# shortly after CTP release (2003/2004) Needless to say if your experience is from 3 years ago, it's getting easier and has gotten A LOT smoother as the community has strengthened with .NET Core.

              However, I'm a Node.js veteran too as the language intrigues me and I find it fun!! My python is weak at best BUT in comparison I don't know that I'd compare one as that much lower a barrier of entry than the other. (I've taught a lot of fresh college graduates, with no experience with it, C# relatively quickly to the point of adding value to the team.)

              😜 All I'll say is in the past 3 years C# might be worth another look.

              1. 1

                I’ll definitely bear C# in mind, it’s not a suggestion I’d come across much so useful to hear. Mobile is going to be a must for my market so I was thinking web-based was the easiest way to first deployment, but desktop and mobile apps will be needed not far down the track.

                1. 1

                  React + React Native and Node.js depending on needs might be more viable with the mobile play. 1 language + similar UI framework to handle both. Xamarin (C#s one language mobile play) lacks community and honestly isn't that great despite early promise.

  4. 0

    Hi, quote you "I'm not afraid of code, but I have zero experience with web development, beyond running a basic Wordpress blog." end quote. Man, you're not to be envied! Your call made me remember the years ... it's nearly 10 years ago that I'd been at right the spot you described in your quote.

    Therefore, I got an idea where you might start. Have Windows, Linux or Mac OSx? Doesn't matter, go fetch XAMPP and install that on your machine, it's free and DESIGNED to tinker, learn, get to know things (however, DON'T you use XAMPP for production !! ). Play with XAMPP, see what's happening, google things why. Maybe you put your Wordpress code inside XAMPP's htdocs directory. Study that, again, try to understand what's happening.

    Spend a day or two EACH learning HTML5, XML, CSS3, JSON. That's one week. If you know C and Python, you will understand PHP, too. PHP is everywhere, like Javascript is, so if you can afford it, spend a week to learn PHP, another week to learn Javascript.

    After 4 weeks, you know at least something about the web and how things work. However, by then you might be better prepared to work your way towards an informed decision about how you would go about reaching your next goal, namely, to develop a homeschool planning and tracking app.

    Wish you the best !!
    Regards, M.

    1. 1

      Thanks, I think the idea of quickly getting to know several technologies is a good one.