Am I trying to hard and missing the point?

Hi campers,

I noticed an interesting thing about the early projects in the FCC learning program (Tribute and Portfolio)
Many times I look at one of these posted by other campers and I think; “Wow that’s cool, I need to up my game.” And then in stead of just making a webpage with a navbar on top and the three sections as specified I try to design the world’s best and most beautiful page. Now I know that’s the designer’s/creator’s curse. You are never happy with what you have made. But I am neither the world’s best designer or programmer…yet…:wink:

My question for the experienced guys is : Should you just go through the project and learn what that project is supposed to teach you? Should you push it somewhat and spend more time on it than you should? Or should you as we say “Pull the pond from underneath the duck’s bottom” every time a project is put in front of you.

How do you find the balance? Is there a balance?

Thanks!

1 Like

I go back and forth on this issue.

My current thinking is that it depends mostly on your immediate goals.

If you are hoping like some to get a job at the first opportunity (some get jobs before completing the first cert), then good design in your early projects will help you present a more professional portfolio. Dave Rupert from the podcast ShopTalkShow mentioned in one show that apparently there is some study that demonstrates users perceive nice looking web pages to be more performant! So designing it well could be your best bet if you want to impress quickly (with lesser programming ability).

If you are really trying to learn as much as possible as fast as possible, then it is arguably better to do what is required to meet the user stories for each project and be very intentional about what skill you are specifically trying to learn in each project. For example, the backend API projects are pretty samey. So in that case I decided to focus one of the projects purely on making the code as modular as possible.

Personally, I prefer to make the design less of a priority and lean on things like Bootstrap Themes or Materialize to make the work hopefully get a passing grade on the design front.

It depends on project. First iteration is usually just an MVP (minimum viable product) - functional spaghetti code, minimal styling - good enough so it can be submitted.

Then later I may return to that project and refactor it or completely rewrite it (I did it with my projects before claiming the Front-End certificate). I see no value in sitting on one project adjusting paddings and color tone to make it pixel perfect (and I really don’t like CSS) when you can move forward, gain new knowledge and then return to your old projects and make them better in a fraction of time.

1 Like

For the first couple projects, I tried to match the examples. As I have progressed, I have started to put my own spin on things. The pseudo danger in this approach is that I have found myself struggling with the pizzazz (which has made me spend much more time that I needed to on a project). The only real problem with this is that I find myself getting frustrated with the project, even though, it would have not been (as) frustrating had I just copied the example.

A good example of this is the calculator. I thought it would be cool to replicate one of the first pocket calculators made. However, the calculator had some odd functionality that I couldn’t figure out how to replicate (but a spent a bit of time trying). Also, I thought it would be cool to have the readout look like an actual segmented display, so I spent a while working with a couple of different APIs. I spent a load of time trying to figure out how to get the APIs to behave, and became kind of fed up with the project. In the end, I scrapped the use of the APIs and changed the calculator to be more inline with the example than what I had planned to do.

I still plan to put a spin on things, but I am trying to temper that with getting through the projects.

think that after I have finish the Front End part I will revisit some of the projects that I know need updating. I figure that I will be armed with more knowledge and experience to identify and implement ways to make the projects better.

I think that it is good to push your boundaries, but I think that striving for perfection may not be the best idea – it can cause one to lose sight of the point of the project (however, if you are learning something, then maybe it doesn’t much matter).

@JacksonBates being intentional about what skill you are trying to learn - good advice I can look at the project and say: “I really want this to be good looking on all screensizes” Thanks! I will check out that podcast, sounds interesting.

@jenovs That makes a lot of sense. I just know as I am slogging away there MUST be an easier better way to do this… On the other hand, is there something to say for “learning foundationals”? Thanks for the advice!

@sceadgugenga Thanks man. I think I struggle with exactly the same thing. Good luck with the pizzazz :wink:

Where does this idiom come from? I must know!

You can never know everything, and you won’t be around forever. So, balance the time you spend with the time you have left. How can you best invest it? I have spent a lot of time learning various frameworks and libraries, but the best time investments I made were in learning the fundamentals of computer science and software design. If you want to be a master at your craft, learn these books and internalize all that they have to say. There’s also a bundle of books that includes a few of my favorites, most notably Write Great Code Vol1: Understanding the Machine. None of this will get you flashier web sites, but you will become a better programmer by leaps and bounds. Be patient, though. Play the long game.

Now, with that said, it’s super fun to learn new frameworks and libraries, so go do that, too!

3 Likes

thanks @ PortableStick. The saying is somewhat of a local one here in South Africa, mostly used in the Western Cape in my experience. How it came about , completely unsure. But quite colorful and useful. Shot for the book references as well I was looking for some. If you want some more interesting sayings we use down here go check this out

1 Like

MVP meaning is a product, which includes minimum features, or one main feature. The prototype can be given to a user as a single product. Recommend you also look at that - Who benefits with an MVP, minimum viable product as launching pad for startups

I wouldn’t worry too much on making the beginning projects “spectacular” in the beginning. As you progress through FCC curriculum and learn more, it’ll make it easier to turn those beginning projects into something spectacular.

A really important moment stands at the Seed stage of startup lifecycle - creating an MVP. You won’t be able progress without this moment. In this article,Developing an MVP for Successful Startup. I’ll guide you through making your startup successful with the help of MVP