Becoming a Full-Stack Web developer in 7 Months

Becoming a Full-Stack Web developer in 7 Months
0

I fall into the trap of reputation points. Thanks for the reminder that it’s all about learning!

Great share, Ethan. And appreciate all the sharing and time by the poster as well to start this insightful thread.

Do you mean reputation points here on FCC? How does it even work?

Hello everyone. No I did not die or give up, I decided to do the videos only once a week, because otherwise I sometimes coded for 30 minutes and spent 20 minutes on making and uploading a video without any progress.

This is the app I build on the weekend. My first ToDo List app with JavaScript. I´m really proud that it worked out as exspected, even though I had to google a lot and had several bugs which confused me. In the end I created an app which UI is (almost) completely based on data and userinputs. I can see a progress in the last 3 weeks, which is great :-). Doing own projects and experiments is a great way to improve.

https://codepen.io/Data-Mastery/pen/oNNbQyV

1 Like

You’ve got enough JS in here I think to take a crack at React or Vue if you haven’t already.

I’d recommend the Codecademy React course (free). FCC has a React track as well but I haven’t tried it. I’ve picked up the “read the docs” skill lately as well. That and working with others’ Vue projects is how I learned Vue.

my context of reputation points just means like achievement points in general. :slight_smile:

Thank you, but I will not rush. This was my first JavaScript App ever, so it is far too early for React. First I want to learn about Object Orientied Programming and ES6 Features, before I will try that. My Plan is to start with React in 2 weeks :slight_smile:

2 Likes

Sounds good to me! From what I can see, you’ll crush it when you get to it.

Last week I learned about some ES6 Features like the ternary operator, Arrow functions, truthy and falsy values, catching errors and also about Classes and OOP. To be honest, except for the Classes I did not implement too much of that stuff in my current project. But classes felt quite “right” and I really like to use them with constructors for properties and methods (functions). That comes quite handy in combination with the “this” keyword.

Something I had trouble with was a good way to change values of another instance of the same class, since I can not use this (maybe I can just pass an argument next time).

This is a little game I developed to work on objects. I´m happy with the result, even though the code is not clean and kinda repetitive. Something I will work on :-).

https://codepen.io/Data-Mastery/pen/abbBYew

Here is the Codepen. Feedback is very welcome as always.

Next week I will start with Asynchronous JavaScript with is a very long chapter with 3,5 hours. I expect something challenging, but hopefully I will finally be able to work with an API :-).

If you do want to make use of OOP I would advise spending a little time reading up on it, spend some time understanding patterns, try to refactor what you have there to something usable. It’s a good start, because it’s something that works, its just complicated. As you’ve realised, classes just allow you to glue some functions onto some specific shape of data, so they’re pretty simple, conceptually. But it’s how you structure them that needs work: jumping straight across to another subject isn’t really going to nail down any good habits. Mainly I say this because this should be simple, but you seem to be having difficulty:

Your classes do far, far too much at the minute. One class should do one thing. Read up on SOLID, follow the references, use Google. Game programming patterns is useful in the context you’re working in at the minute as well.

1 Like

Thank you for your Feedback. When I programmed this, I got a sense that this might not be the correct way to implement the class. I guess it should be more like this:

class Car {
  constructor(brand) {
    this.carname = brand;
  }
  present() {
    return "I have a " + this.carname;
  }
}

mycar = new Car("Ford");
document.getElementById("demo").innerHTML = mycar.present();

So the class only contains and changes the underlying data, but all the rendering stuff happens in functions. I will work on that. But I will also learn how to work with APIs. I´m interested in finance stuff and found a pretty cool API I want to work with:

https://www.alphavantage.co/

I the next two weeks and weekends I want to build a little “Portfolio” App, which allows to track the development of stocks. To be honest, I´m quite done at the moment after my daily job. I have to learn stuff which is quite outside my comfort zone and I have a hard time to find the motivation to learn after 8-9 hours of work :-|.

1 Like

This week I dived into asynchronous javascript and I struggled a lot. I had really a hard time to understand WHY my Promise is never able to return a value.I think now I finally understand it in a way which allows me to work with it. Async / Await seems to be a nice way to handle some of the complexity.

I guess now it is time to repeat everything I learned in the last 6 weeks to attack my forgetting curve. I have an idea where I create an App which combines Expense Tracking and Assets to get an idea of my overall development of a portfolio :-).

This is what I built the last two years including the learning process.

https://codepen.io/Data-Mastery/pen/abbwXgY

Type in “MSFT”

1 Like

This is amazing man, as someone just starting out its inspiring watching the journey.

1 Like

Thank you very much! Always nice and motivating to see comments here.

Last week I decided to jump on Node.js, since it helps me to get a more wholistic view of Web development and so far I just followed along the tutorials. I learned about express, handlebars, MongoDB and Mongoose. It´s quite a lot of new stuff but for now I just gonna follow along a tutorial where I learn about API´s, Authentication and so on. From that point I will build my own app :-). So far I really like the course and since it´s also JavaScript I do use the stuff I already learned. 6 weeks now since I started the blog and I can see how much I already learned and improved myself. Sometimes when you are tired and not motivated after a day full of work, it´s easy to forget that. I still struggle with procrastination and sometimes even think about quitting to be honest, but this blog helps me to stay on track :slight_smile:

Hello everybody!

I have build my first Node “App”. Yes it´s not an App yet, but I was able to set up routes and render some HTML with the handlebar.js templating engine. I was able to do a POST request to a mongodb and managed to save a Todo. I feel pretty happy about this, slowly things start to make sense.

Next week I will continue to build on this and will find out how to deploy that on my own server (yes I bought a 5$/month droplet from Digitalocean and still have got a domain :-). So far 1,5 month are done and I think I already became much better, even though I often struggle with the old problems like procrastination and fatigue after work.

Good results help with this issue :-).

I´m pretty stuck with node right now… anyone else had problems when learning Node? I get pretty stuck with redirects and how to combine the backend with the frontend. I even thought about quitting node.js and switching to Python and Flask, since it seems easier and I currently use some Python in my Job to automate stuff. But on the other hand I don´t want to get the guy who jumps from one thing to another.

I´m not quite happy right now with how I improve right now.

It is sunday again, so time for a new update. I did it… i quit… Node.js (for now). Yes I was quite frustrated and had a look at flask since it seemed to be easier to learn. And yes, for me it was easier to grasp and in only 2 days I archieved more than with Node.js and Express. But to be honest, it was not so different from Express. You build your templates, use different endpoints and make your Requests.

What I really like is that Flask allows to me integrate the operations in use in my job (even though i´m faily new to python) and integrate them in Web dev. Like this: Pandas for calculation, managing data and more and passing this data to the template.

@app.route("/allusers", methods=["POST", "GET"])
def allusers():
    if request.method == "GET":
        user_collection = mongo.db.users
        df = pd.DataFrame(list(user_collection.find()))
        df["price"] = df["price"].apply(pd.to_numeric)
        result = round(df["price"].mean(), 2)
        return render_template(
            "/result.html",
            result=result,
            nrow=df.shape[0],
            series=list(df["price"]),
            description=list(df["description"]),
        )

Maybe I will come back to node.js later, but so far I am very happy with using python on the backend. Next week I will try to build on upon what I did so far and then hopefully will be finally be able to deploy an app on my own server :-).

This archievement gave me a boost of motivation, which hopefully holds on, because there will be so much failure and there is a ton of new stuff to learn… Linux Servers, more shell commands and in one month my 2 fulltime react weeks will start :slight_smile:

What stuck you on Node.js? A lot of times now I search for a tutorial repo or a guide with a code repo on Github when I’m trying something new. Play around with it, figure out what does what, what happens if I change this? And then adapt it to my needs while slowly learning it. This is in large part is due to having deadlines now, but I realize I could have learned a lot faster earlier one if I took this approach.

You can also learn a lot pair coding. Maybe join a Chingu (although I think it’s paid now) or find someone on the forum to pair program with who is sufficient in backend.

I got stuck with redirecting but it does not matter too much. I will use the tool which gets the job done and I generally think Python on the backend suits my needs better than JavaScript. The reason for that I will show you when I finally finish my first App with a backend :slight_smile:

Btw. what is a chingu?

Well I did after some struggle not manage to get that damn app deployed. It was a quite simple app where you could enter your age, sex and class you wanted to book for a tour on the titanic. Based on the input a probablity was calculated and served as string for the template which got rendered on the frontend. So here we go… I guess working like that has nothing to do with real web development.

In 3 days I will have an appointment with a senior front end dev on my company, who will show my how they work on Apps which use heavy machine learning processes and work with a large amount of data. He told me they use Vue.js. I´ve read about Vue.js and it seems to be easier than React.js and Angular. Anyone here with any relevant experience?
Really looking forward for that appointment :slight_smile: