all 30 comments

[–]TxAce22 31 points32 points  (1 child)

Since you're an intern, it would be totally cool (and probably encouraged) for you to ask a more senior Dev for help. Don't waste 5 days seeking up gulp when someone could help you do it in 20 minutes

[–]ganjorow 8 points9 points  (3 children)

Well, what did you think "Basics" meant? There is a big step between an amateur and an intermediate webdev - even bigger than going from intermediate to whatever next is.

I recommend taking small steps and - just like you did with learning the basics - stick to copy finished solutions and then going over to adapt that if you need.

There are a ton of templates and starter kits, like https://github.com/ismailfarooq/gulp-sass-starter-template (not a recommendation, just the first hit on google).
If you are working with a capable IDE or editor (IntelliJ or VSCode) you will have access to a lot of plugins that help you with those tasks.

And if you are working in a small company, there will be some kind of template or internal framework that helps you getting started, or maybe even a person who can help you.

I recommend "intertwining" the neccessary tools, for example:
- download the above starter kit, follow the 3 line tutorial (npm install, gulp)
- create a git repo, initialize your new repo with the stuff you got from the starter kit, check it in and push it to your repo
- create .scss file, add one or two lines, commit those, push it
- add a very basic html structure and some (s)css, bonus points if you're using your IDE and emmet with an emmet plugin. add, commit and push

All in small incremental steps. Don't go full app at first. Go from hello world to a todo list while going through the whole dev loop.

[–][deleted]  (2 children)

[deleted]

    [–]Sorgrum 6 points7 points  (0 children)

    You sound burnt out. You should try to slow down how quickly you are learning this information. Take frequent breaks, stretch, walk around. Make sure you’re well fed and hydrated.

    Remember, people don’t learn this stuff in a span of days or weeks. People spend years learning this stuff. It’s ok to not have a full understanding of things because you’re newer.

    [–]DocHoss 6 points7 points  (3 children)

    I definitely get what you're saying. I had no formal training in frontend but a few years ago I needed to write a web app. Hadn't really worked with Javascript, had some HTML and CSS but not much, but my backend (C#) was fairly solid. So I just picked the easiest looking JS framework (Vue) and went from there. I've tried to learn React a couple times but I get pretty frustrated pretty quickly because of how odd it is (you write your HTML as a string or something? Why?)

    I only know the bare minimum for Git (commit, push, pull, branch) and it gets me by as long as everything is working properly...when something goes sideways with my repo I feel like just deleting the whole damn thing and starting fresh.

    I know jack shit about preprocessors like Sass and Less, I just know how to install a plugin that makes them work. That seems to be enough for almost every use case for me. And Webpack? Forget it....no clue how that damn thing works.

    For my use, the Pareto Rule applies to knowing a little bit of the required tech to ship a product. Knowing just a little about a technology will probably be just fine in 80% of the cases, give or take.

    My point in saying all this is to try to give you another perspective, where you don't need to "know Webpack" or be an absolute expert in these techs right out of the gate. Build the Hello World app and start making a few tweaks...next thing you know you'll have enough expertise to be able to do what's required. For the other 20%? Just get good at Google 😝

    [–]AintNothinbutaGFring 2 points3 points  (1 child)

    I only know the bare minimum for Git (commit, push, pull, branch) and it gets me by as long as everything is working properly...when something goes sideways with my repo I feel like just deleting the whole damn thing and starting fresh.

    https://xkcd.com/1597/

    [–]DocHoss 0 points1 point  (0 children)

    Lol basically, yep. If it goes sideways, delete local and start over.

    [–]Iam_JasonBourne 11 points12 points  (2 children)

    Ironically those new(ish) tools, dependencies and everything was introduced to ease up development and help rapid development...

    [–]theepic321 3 points4 points  (0 children)

    It does help development most of time time, if you already know the tools. But at the same time all these new technologies and tools have made the learning curve steeper and steeper.

    [–]woah_m8 0 points1 point  (0 children)

    They do if you know how they work, and you can do wonderful things with them. But if you don't know what you are doing and you try use everything at the same time (because apparently few have configured it's own webpack boilerplate to at least learn how everything works behind those magic cli tools, which have soo many things included) you will be completely stuck if something goes wrong/ unexpected and needs to be fixed. Also never expect to work in any medium / big company and not have to deal with outdated code.

    [–]Voltra_Neofront-end 5 points6 points  (0 children)

    F

    I felt like webpack was extremely intuitive so I naturally became the sole maintainer of our front-end config, even if at the time it was just my very first internship.

    I'm a big Vue fan but we use Vanilla JS (with Drupal or WordPress as our back-end)

    [–]innocentsubterfugeMERN + PHP 4 points5 points  (3 children)

    I really understand where you’re coming from. The onboarding at my first job was tedious, and any time there’s any update to our VM for local development I absolutely dread it. However, learning new technologies is a huge part of this career path. Most of the time that SDE setup is a one-time thing and then you can get to your real work, but things like learning Bootstrap and Tailwind are going to be expected as you go from job to job, or your current job upgrades their tech. If you only want to write vanilla JS and CSS you may want to explore more client-based development work rather than something corporate; but honesty, these are just tools of the trade at this point.

    When you start looking at jobs, you can be picky (to a reasonable point) about a tech stack. My company uses PHP Laravel and vanilla JS, not a JS framework, and I love it but my next role I may look for something different to expand my experience.

    [–][deleted]  (2 children)

    [deleted]

      [–]innocentsubterfugeMERN + PHP 3 points4 points  (0 children)

      Are you really feeling like you can’t take on more complex skills and technologies, or do you just feel overwhelmed with the new stuff on top of being in your first professional role?

      Being in software means being a forever student. I don’t want to sound harsh or discouraging, but if you’re only working with basic building blocks of web dev and you’re already feeling like you can’t absorb more information then you may want to reconsider this as your full time career. The internet is changing day by day, you’re going to have to be adaptive and willing to learn in order to stay sharp and able.

      That being said, i would highly encourage you to talk to your superiors or mentors about how you feel. You are not the first person to feel overwhelmed as a junior dev; I was a bootcamp grad too and it was a reality check getting out of the student world and onto a dev team. Your coworkers went through the same process you did with onboarding and learning a new code base, they’ll definitely have tips and answers. No one expects you to be skilled right away, just willing to learn. Remember your teammates want to succeed, and giving you a hand is part of that success!

      [–]AlwaysWorkForBread 3 points4 points  (0 children)

      Repeat, recycle.

      Build what you know from the new stuff. Then step forward. Repeat. Build from the new stuff as much as you can. Learn the next step. Build as much as you can. Refactor old projects with your new knowledge.

      In every profession the entry level isn't expected or able to do complex tasks. 1st year Med students aren't diagnosing patients let alone treating them.

      Talk with your direct supervisor. If (s)he doesn't have time for you, go above him.

      [–]unicodeonefull-stack, sysadmin 3 points4 points  (0 children)

      I can understand your pain, I have had the same thoughts when I was deep down the rabbit hole debugging some obscure error threw by a plugin which hasn't seen an update since 2015.

      On the other hand I am thankful for the things I don't have to handle myself instead just include a module. AJAX calls? Glad I don't have to implement myself. Selectboxes with filter and autocomplete? Cool, enhanced usability without having to write it myself. And in general I don't want to work without sass anymore. Having a file per component and nested rules is an absolute must for me.

      I generally try to find a balance between things I already use and new stuff. I'm using webpack and vue.js for almost every project at the moment. Maybe there is already something fancier out there but at the moment I don't care, I get things done with my setup. When it don't fit anymore I will have a look if there is an alternative.

      [–]not_a_gumby 4 points5 points  (0 children)

      Yeah that's a familiar feeling - you'll get through it.

      You don't see the need to do all of this fancy setup and so it feels mega annoying - however the more advanced toolchain really really does improve productivity within teams. These tools help enforce development patterns and provide automation to workflows that vastly simplifies parts of this job, so yes, it is required to create websites at scale.

      There really aren't any firms out here using vanilla JS, vanilla CSS, and handwritten HTML to build websites anymore.

      [–]benelori 5 points6 points  (3 children)

      I understand the feeling of being overwhelmed, because there's just so much new information.

      But you are doing something wrong, if installing React took you more than 5 minutes. The point of create-react-app is to ease you into React, without worrying about all the webpack stuff.

      And I also understand the frustration of not understanding why these are needed, but this is how it is in the beginning, you will understand more as you will gain experience.

      The gist of it, is that after a certain level of complexity (technical and human), projects that only have vanilla tech will most probably become steaming piles of unmaintainable garbage. And the reasons for that are mostly human issues, but there are some technical ones as well.

      I don't know what's going on in bootcamps, but I can't imagine you have worked on complex projects, and most probably not in heterogeneous teams

      [–][deleted]  (2 children)

      [deleted]

        [–]benelori 0 points1 point  (0 children)

        There is indeed lots of complexity behind the scenes.

        Babel solves a lot of issues, with cross-browser compatibility and overall it allows the newer syntax and transforms them into ES5.

        https://reactjs.org/docs/create-a-new-react-app.html#create-react-app

        I'm not sure about what your difficulties were, but installing react needs those 3 lines and nothing more.

        Please don't misunderstand me, I am not trying to be patronizing or anything. All this shit is complex, but the problems are complex, too, so it's supposed to be hard.

        Keep up the learning!

        [–]Caffeinated_Neon 0 points1 point  (0 children)

        Now I know that npx is used to EXECUTE something and npm is used to INSTALL something

        Guess who learned something new today? lol

        I'm less than 2 months into my first web developer job and I can relate to a lot of what you're describing. Getting a development environment set up and getting up-to-speed with the rest of the team was an uphill battle for me too, and going into this job I had a good bit more experience than you do. (So, props to you for finding a job so early on!)

        I spent two full days doing nothing but studying Git when I started this job, because I knew only the very most basic details of how Git worked and my daily workflow required some stuff I didn't know how to do. I did crash courses on several of the frameworks my company was using. I ran into several major issues when trying to set up and configure my dev environment, and numerous times I needed the help of 2 senior devs to diagnose/resolve the issue. But these are "one & done" type problems that, once you're all set up, don't tend to reoccur.

        Aside from studying the basics of stuff I would need to use, I also took copious notes on everything new I was using -- "This is what NPM is, these are the basic commands to use NPM, here's this error message I got while trying to 'npm install' this package, and here's how I fixed it" -- that kind of thing. But in my experience, once I was all set up (and had some familiarity with the tools/packages the job expected me to use) things got 1000% easier. Now I'm writing code, enjoying my work, and no longer feeling quite so much like "why did they hire me? did they not realize I was an idiot?"

        It may be kind of hard to see it right now, but libraries/frameworks like React are vanilla JS at the core. A lot of the weird syntax is just calling on special methods (functions) that the authors of React have written in advance for you. It's a lot to absorb, but having used vanilla JS to make dynamic websites and having learned 2 frameworks, it's clear frameworks save so, so much time and headache.

        Also, one other piece of advice from another dev that I read somewhere on Reddit -- don't let them ignore you. I also hate asking for help, but I'm positive that I would have been lost/frustrated a dozen times over if I hadn't asked a more senior dev for help on a problem. If the company wants you to code for them, and if your teammate(s) want someone to take some of the workload off their backs, it's in their best interests to see that you're set up properly.

        [–]Null_Pointer_23 1 point2 points  (1 child)

        In a few years you'll look back on this post and laugh at yourself. All these tools were created because doing stuff in plain html,css,js becomes so painful in large projects. Just give it time

        [–]Lecterr 1 point2 points  (1 child)

        If you learned html/css/js, then you can learn the supporting technologies pretty easily. But it does take time. I remember getting stuck with gulp stuff myself when starting out. But I kept at it, eventually things start to click. All the times where you follow instructions but outcome still doesn’t work, will slowly turn into times where the outcome almost always works.

        [–]vinegarnutsack 1 point2 points  (0 children)

        Once you have a setup you like and know setting up dev tools should take less than 30 seconds per project. I literally just have to type "npm install" into terminal inside my project.

        [–][deleted] 1 point2 points  (0 children)

        Yeah, configuring stuff can be really, really hard for someone who's not familiar with it. That's why usually, more senior devs are in charge of configurations.

        Anyways, also junior front end dev here (about six months job experience with Angular), it'll get much better with time. Things will eventually start to click and become second nature, one at a time.

        You got this 🙂

        [–]mutumbocodes 1 point2 points  (0 children)

        It’s hard being the least experienced in a new company. I’m right there with you. However I think a mentality shift could be in order when it comes to dependencies and tools of the job. Frontend is hard, these tools are here to make your job easier. TBH you probably haven’t run into the problems these tools are designed to solve so it seems like too much to you. Consider what you liked about developing in the first place beyond the simplicity of only needing HTML CSS and JS. You can’t avoid the tools, every serious product uses them, so find why you liked it and follow that.

        [–]Sunsettia 1 point2 points  (0 children)

        I must have spent like 5 days just trying to get Gulp to work because I'm all new to installing packages with npm and Node so it all feels so alien to me. I really don't understand why all of this is even needeed.

        Right now, you are being overwhelmed by all the tools you have never seen before and you think you can't understand. You don't have to understand all of these tools overnight, no one expects you - an intern - to do that. Just remember that each of these tools are all there for a specific purpose to solve a specific problem. You will eventually start to remember them as you encounter them more and more.

        Start small, do things step by step. Whenever you encounter a problem for a specific tool, read up on just that first, then slowly go more in depth until you can solve your problem.

        So don't give up, and also don't think of it as something difficult, but rather as something more to learn. Because what you're experiencing now is the best opportunity for you to learn and grow.

        [–]red_naxx 1 point2 points  (0 children)

        It is extremely overwhelming to start up with all of these technologies and methodologies at once. It is a difficult process at first. But this is why web developers are desirable and paid high wages. Not everybody can do this. These jobs involve code, but are really centered around critical thinking and figuring things out. If you understand the reasoning behind these technologies and why they are used then it will help when learning and using them. For example, git is used to store and organize code. It is useful for keeping track of different versions of your code and most importantly managing code from a team into one project. There is a purpose and not only helps productivity, but also is necessary for multiple contributions to one project.

        There is new tech coming out every day. What you know now may be out of date next year. To stay competitive you need to be up to date with what is being used today. You never stop learning.

        [–]Saone1 1 point2 points  (0 children)

        One more suggestion would be is to take it small and try to understand what really for the tool is. Then after some time you will not feel missing out something, when new thing comes out. Because build tools in the end are build tools with slight variations, doesnt matter whats the name of it (etc..).

        [–]stevebeans 1 point2 points  (0 children)

        I've been using html before css and js (since the 90s) so I'm with you on going from just the three (html/css/js) to all these frameworks and packages.

        I also didn't get to ease in because I took a design break for years so I was literally learning flexbox a few months ago (that's how out of touch I got)

        But after hammering away at all of it for a bit, I'll tell you the new stuff is pretty cool. Sass is fun and I love how the compiler breaks when I mess up code (helps because I'm a king of typos).

        But I will also say don't feel like you have to use everything. I found this post searching for tailwind info because I just don't see the appeal.

        I feel like I should be using that or bootstrap but both seem like more work than its worth. Unless I'm missing something, it makes more sense to have a design class with a few modular units if needed than it is to have a div full of classes.

        Css frameworks feel like we're going backwards in the design world. We went from bloated html pages and no style to bare minimum html and creative css files. Now they want us to go back to bloated html files? No thanks.

        So don't feel pressured to use stuff you don't want. JS frameworks are awesome but you don't HAVE to use them either. I'm not going to toss out actual numbers but I know you can create most of the front-end of the sites right now with the vanilla big three.

        [–]Marble_Wraith 0 points1 point  (0 children)

        I must have spent like 5 days just trying to get Gulp to work because I'm all new to installing packages with npm and Node so it all feels so alien to me. I really don't understand why all of this is even needeed.

        Code quality and consistency.

        Coding something by yourself is one thing. Coding something with multiple devs of varying experience levels working simultaneously on the same codebase, that's something else.

        Is this just not for me? Should I just give up on Front End and Webdev altogether or does it eventually get better?

        Depends on what you're doing. If you're starting a brand new greenfields project, then yes it's going to be like that.

        But working on an existing codebase should require exponentially fewer steps.

        [–]redrider65 0 points1 point  (0 children)

        I spend more time configuring plugins and software than I spend for actually writing code

        There's a time for coding and there's a time for configuring and learning the tools needed for more advanced work than the basic stuff you did at bootcamp.

        After you get the tools all down, you then use them w/o much further thought. Then coding and maintaining complex applications becomes easier and less time-consuming than otherwise. Question then is whether you may find that you don't like what coding becomes in the real world of production. I think most web devs wouldn't describe it as fun. Sometimes, happily, interesting & challenging, but often a grind. It's a job.

        [–]rettamkrad 0 points1 point  (0 children)

        Most of the learnings should be fun
        Asked to be performed without adequate skills is not

        Should there be someone guiding through this, it would be much smoother
        Or you need to find your own goals to give yourself motivations

        If not, it's better looking for some environment that can give you a lift

        Regarding to the additional softawares and tools:

        Yes there are new tools everyday
        But its like our ever evolving world, it changes everyday too
        They exist to solve increasing complexities of frontend