This technology must be able to handle large volumes of users, easy to read and maintain, and be able to handle more large and complex web applications like forums and social media platforms.
NodeJS with Express is beginning to grow on me more and more. Laravel is too difficult for me to learn so far. I have tried to learn it but it doesn’t seem to click with me. I will be learning Ruby on Rails in an upcoming group I will be attending. At a quick glance, Rails looks to be very difficult to setup and use (I don’t have Ruby experience either). Plus, I think Rails is starting to fall off and used less and less over the years.
I would like to know what to invest my time into, since it seems like time is getting shorter for me.
What stack is the easiest to learn (yet powerful and relevant) today for beginners and most of all, lone developers (freelancers, one-man entrepreneurs)?
Also, I was told that I need to learn more about testing and process. A professional reviewed my code and told me that it seems like I have basic coding under my belt, I just need to take it to the next level. I have been doing this for 2 years.
This is too subjective to answer, honestly. What I, or anyone else, find easy, may not come easy to you. For example, I would consider Ruby on Rails, in general, to be a very forgiving, and easy framework to step into. But, as you’ve mentioned, you’ve struggled with it (probably due to your lack of Ruby knowledge though, to be honest).
My advice? Pick one. Any one. And stick with it. Whether it’s RoR, Laravel, Express, or whatever. They’re all tools.
I have hit bedrock (a plateau) in my learning. I know HTML, CSS, vanilla Javascript, procedural and some OOP PHP, and SQL. I have tried to expand my learning from there and have failed thus far.
Maybe I need to take a break from it for a few days or a week?
Also, I didn’t get the job. I interviewed 2 weeks ago for a junior dev position and didn’t get it.
First off, I’m sorry to hear about the job. It sucks, but, keep on trying. The interviewing experience alone is valuable. The trickiest part about getting into this line of work is just finding the first employer to take a chance on you. From there, on-the-job experience takes over and it’s much easier to grow and move on.
I’ve seen a lot of newcomers hit this point. At least you’re recognizing it. Many don’t, and just end up in a tutorial-loop, where it’s tutorial after tutorial without any real learning or growing. Learning everyday is a must, in my opinion. The fact you’re doing it is great. I do the same, to this day, even though I work in the field.
All of that said, it sounds like you have some fundamentals you can rely on. The trick from here is application. Before jumping into a framework maybe you should start with a relatively basic project, one that you can drive some sense of interest in (so you are less apt to walk away), and see it through to fruition. And do so without the aid of a tutorial series.
Fall back on the fundamentals you’ve learned already, the documentation at your disposal (PHP documentation, MDN, etc.). Prove to yourself you can apply that knowledge. This will expose areas you’re weaker in, and need to focus on. Get that bit of confidence under your belt, then move on to a framework.
And a little secret—that feeling of not knowing enough never really goes away. Even the most experienced developers doubt themselves. Or fall back on documentation for the most rudimentary of things… Half of the time I couldn’t tell you for sure what the parameters order is for half of PHP’s array functions. And I’ve been writing PHP for over 15 years. That’s what a good editor with code hinting/completion is for, haha.
I have been trying to build this massive web project. It is a web app for my town that combines a forum, job postings, coupons and deals, business reviews… where users can earn points and earn rewards.
I have been told to postpone that project and build smaller ones in order to fill my github with more projects. I was told that my github needs to be full of projects. He stated that my github is what gets me the interview, not the job itself.
I am in a delimma as to whether or not I need to temporarily push aside my project to fill up my github or to continue pushing along.
I have scrapped my project and started over many times. Often, I spend months on the project and don’t like it.
I fear I am working on a project that is poorly made and puthforth so much effort just to scrap it again.
The code at this point is unreadable and difficult to maintain. I am using PHP with no framework.
Yeah, I generally agree with his statement on your Github. Not so much that it needs to be full of projects (though that obviously doesn’t hurt). But that it doesn’t always play a role in your ability to land the job. Companies, rightly so, hire personality over anything else. Most vet you from a basic technical level, as best they can, before ever shaking hands in person. The interview just confirms that.
I think you may be biting off more than you can chew with that project, though. Putting your Github account out of mind for a moment, you could benefit from taking on smaller projects, and seeing them through to reality, as learning experiences. If you’re getting in over your head then dropping the project, or restarting it, is always going to seem like the way out. Building blocks… start smaller, and build up. Split your massive project into different, standalone projects. Go smaller than that even, if you need to.
If you already know PHP then I’d say pick a popular PHP framework and learn it no matter what, sometimes things don’t click right away. Besides it’ll probably take you less time than learning a whole different “language” like Node.js
If you do decide to learn Node.js one framework I would recommend is Nestjs, I’m currently learning this amazing framework and I absolutely love it.
IMO, Node.js + Express doesn’t have the easiest learning curve for a beginner dev—the high-level concepts certainly aren’t easy to quickly grasp just looking at the code, even if you know JavaScript.
What I might suggest doing is learning two different back-end frameworks at the same time so you can compare them to each other and learn them in parallel, so that it’s easier to absorb the concepts. I started out with Node.js + Express myself and got into PHP shortly afterwards, and comparing the two has definitely helped to solidify some of the general back-end concepts for me. PHP is a “safe” choice to learn as it’s very well-used on the Internet, especially for forums—Laravel is probably the most popular PHP framework but it’s not the only one.
Ruby on Rails still maintains an active community and is popularly used by startups and small companies for good reason. I’d agree it’s been in relative decline in recent years, but a lot of companies use it regardless. Still, it might be worth learning anyway, as it’s supposedly fast to get started with (I haven’t used it myself, but that’s what I’ve heard).
The only other alternatives I might suggest would be Python (with Flask or Django), Elixir (with Phoenix), or Golang (several different frameworks are available). Elixir and Golang are probably the top choices out of the list for something that’s highly scalable and conducive for complex web apps.
There’s also certainly C# and Java but both of those languages have associated frameworks that are very complicated and aren’t easy to learn (.NET and Spring, respectively).