Create templates to quickly answer FAQs or store snippets for re-use.
This might be part of the problem: "I am a normal guy, I don't really code at home, or work on a personal project."
I see this as an indication that you aren't all that interested in programming; those who have a passion for it can't get enough of it. Take a look at how you spend your time at home...what is it that gets you excited, something that you'll work on nonstop until the early hours of the morning? That's your real passion, and following it might make you a happy guy.
I disagree with that.
With your definition of “passion”, and with the advice itself. I think it’s important that your studies and your job are something you like to do, and that do not feel like chores. Wether you make your whole life revolving around it is your choice to make, but I’m old school, I consider variety equals sanity ;)
I have many interests and friends, and only so much time. I am very glad I get to spend my working hours doing something I love, I think I’m even becoming pretty good at it, but work is work and life is… well, life. At the end of the day, I like to let my head rest and focus on other things to have variety.
As to wether I’m passionate about it, well – according to your definition – surely not; I do not have pet projects and I will never ever spend my night on anything that is not an absolute emergency (or astronomy, obviously). That does not mean I’m a sad person at work, or that I’m not all that interested in what I do. I just have varied occupations.
I’ll conclude by highlighting the fact that many companies – at least in France – avoid hiring newbies who make it seem that programming is their only life, because they have a reputation of not fitting in with the team very well (heck, we ourselves have an intern who only ever speaks about his pet programs and a single video game, and boy is it a hassle). This might or might not be related, this talk just made me think about it.
I agree with you rather than Perry. If I'm "not passionate" because I have a relationship and friends and spend time with my coworkers completely divorced from work, then so be it. But I (and those I work with) believe that code should fit into your life, not be your life. Pet projects and after-hours work are great, but they aren't the sole determinant of passion.
I will put it this way: We respect doctors for the work they do. It's highly specialized and takes a long time to learn to do well. Is a doctor less passionate about their field if they leave the hospital and go to dinner and a movie with their spouse? Or to the gym? Or should every waking moment be focused on their job, reading and doing research in their spare time?
A big reason we want doctors to have lives and get sleep is so they don't make mistakes out of fatigue or burnout. Considering developers write the code that runs healthcare systems, banks and websites that individual businesses depend on, does it not make sense to subscribe to the same beliefs with us?
We can keep developers passionate about the field by NOT demanding they be consumed by it. Plus, if all someone can ever bring to the table is coding X, they'll never be able to relate to the people they're writing the code for (and by extension the projects themselves).
Hey, thank you for your advices!
I think I like programming, really, but I don't know, i'm going to the gym 4 times per week and the other days I'm doing my homework. I really feel like I don't have time for a personal project. But you're right, if I loved it that much I could make some times for it, this is why I'm going to learn React (or maybe another framework ?) and start creating something. I already have 2 ideas for a little project which can help me to increase my skills !
I agree with Perry, about the passion. I always find something interesting to do or at least to read about.
As for JS, I've avoided it until now (59 y/o and counting... being a programmer since I was 20).
The approach I took with JS is to use it as a compilation target and focus on Typescript instead. I read so many praises about the language, so I started learning it. It's amazing.
A few more points on JS:
React isn't a framework 😉
Don't learn React, learn the programming principles that React promotes: functional programming, data driven UI development, libraries composition (and composition in general).
Agree 100% with Perry.
I would argue with this. He says he is in college, so I totally understand there is no time for personal projects (I know I had none between school, work and homework).
It is pretty wild, but the fundamentals are still just computer programming and hopefully your employer will be able to help reign in the insanity with good technical direction.
Also @kayis posts a lot of great info on JS.
Hi Ben and thanks for sharing my article It makes me really happy !
I will read all of them since I kinda like how the JS community is so active ! When I see all these articles and tutorials I'm a little more relieved about it
One more thing, you only need ONE job and there are PLENTY of jobs in Java, C, C++, COBOL, PHP.
Becoming a one-trick pony is not very good career advice for people working in IT. There are plenty of one-trick ponies that get replaced by people capable of working in more than one language, and get stuck in dead-end jobs working on maintaining 30 year old software because they thought there are enough jobs for COBOL.
The key is to know vanilla js really well. If you know that, I dont't think it will be hard to switch to frameworks.
Vanilla JS? Never heard about it, I will do some research thanks
I mean a pure js usage, without frameworks etc. Ok, maybe jquery to perform ajax requests, because they're messy, but other things can be done with pure js. Like, creating a component using prototypes and native dom manipulation etc. Just to try it out. Check out this: vanilla-js.com
or rather than jQuery for ajax look at fetch - all the goodness of modern vanilla JS, with a great polyfill, and none of the jQuery bloat :)
With that out of the way, check out YDKJS. It's arguably the best, most comprehensive JS guide online. Then, once you've got the basics of JS down, React is the way to go. The community is huge, documentation plentiful, and the ecosystem is an absolute joy to work in.
The issue is that HR/recruiters still mostly expect people to have degrees. Most of the time your application will just end up in the garbage bin for not having a degree. This process might even be automated in many places. Beyond that there is a bias towards degrees from specific institutions. It doesn't make much sense on a technical level, but that's just how it is here in the US. There was a point in time that I was considering dropping out of school, because I was making extremely good money coding. It was my boss actually that convinced me to stay in school. After going through a couple rounds of job searching and seeing how tough it can be even with qualifications, I'm really glad that I had that voice in my ear telling me to stick with it.
I'm US based, and never finished school. I think you'd be genuinely surprised what a healthy GitHub account attached to your LinkedIn can do. Degrees seem to be a stopgap for having actual code published. In my experience, once you've published even a small amount of usable, well documented code, they're pretty willing to overlook the degree. My LinkedIn is a joke when it comes to "professionalism," yet I've been bombarded with recruiter emails since linking my GH, even when I only had a small number of projects. It does make that first contact harder to establish though, I will admit that.
Establishing a reputation on StackOverflow and HackerRank can aid a LOT as well.
With all due respect, being bombarded by recruiters on LinkedIn and actually getting the job you want are two entirely different things. I'm glad things seem to be working out for you though.
This is very true. I don't want to seem like an advocate for dropping out, or like college is entirely pointless. Rather, pointing out that I think much of what is taught is antiquated with regards to most of the jobs on the market.
At the end of they day, what it takes for you to learn the skills and get code published is the path you should take. For some, myself included, college wasn't it. If you're the type of person that functions better in a self taught environment, diving head first into open source and contributing wherever possible can work. IMO it's one of the things that makes this field great. The path you take is less important than the fact that you get there.
For the sake of completeness, I want to note that pretty much all of what I've said could very well be exclusive to the web. It's my niche, and in all honesty I don't stray far because it's what I love. The rise of coding bootcamps, and even projects like FreeCodeCamp, seem to have liberated web development from the traditional CS model.
I agree entirely. College is overrated and generally poor at actually teaching vocational skills. Hopefully people will eventually catch onto the fact that an undergrad liberal arts education isn't all it's cracked up to be, but I still recommend people get degrees for the time being.
I never finished school (I stopped at half of high school), because my informatics and systems teacher gave me an F as final valuation in both the matters. Looked like programming stuff wasn't my destiny at all.
You know what? I worked for 3 USA startups in the past 5 years, the one I'm working for now was in the 2017 CNBC Disruptor 50 companies.
At work I am one of the most performant developers and my (graduated) teammates seek for my advices often.
I get at least a (serious) job offer each 1/2 weeks and nobody ever complained about my lack of school degree (except for when they want me to relocate to the USA and I can't because your laws suck).
School, for programmers, is a huge waste of time.
If you can afford to waste all that time then good for you, carry on and get your piece of paper.
If you want to get a job and start producing stuff, just prove your skills creating some cool projects on GitHub and the rest will come.
I'm not sure if React and Symfony (a PHP web framework) is a good combination. With the modern JS frameworks (React, Angular etc.) server based web frameworks seems to be dead, at least for new projects. If I were you I'd choose another language for the business layer (Python, Kotlin etc.) instead of PHP.
I didn't say that. I said web frameworks in general, language agnostic. If all the view/controller processig is moved to the browser and the server simply serves REST services many functionalities of the framework are not used. I'm thinking about Struts, JSF, Spring MVC. I don't know the PHP world, maybe its frameworks do different things but I doubt it.
You are entitled to your own preferences of course, but the idea that the client/server model is dead is simply not true... Traditional frameworks have become very good at serving APIs.
cough cough GraphQL cough cougghhh
What about it?
What was really frightening was 10 years ago and maintaining JS code for the %$`$ IE6 (ie6death.com/). Now things are getting better so don't be afraid! :)
oh! one more thing: use the documentation on mozilla developer network (developer.mozilla.org/en-US/) for anything you need to know. it's WAY better than w3schools. and they have good tutorials.
There is a Chrome extension to exclude W3Schools from search results, and I highly recommend it. The information on there is usually outdated, or just flat out wrong.
MDN really is the definitive source for JS.
Oui ! It's still the case, like I said it's all about C++/Java
Nice post/discussion you started here! Definitely going to read all the suggestions the community commented here.
On the other hand, an internship doesn't define your whole career and, as Ben said, there are plenty of jobs in those other languages if the JS family doesn't suit you or you end up not liking it, so don't worry.
I understand how you feel. I'm kind of going through the same thing.
Way back in 2012 or so, I was really starting to learn programming and I fell in love with JS. The only real frameworks or libraries I knew about were JQuery and... that's it.
I was in the same boat a year ago! University thought basic programming and applied theories on C/C++,Java. As A student, HTML/JS sounds like kids work because we had those even back in highschool so no one really used JS to build their school projects.
I had to learn Angular 1 last year to actually be useful to the company business. I use some of my free time to checkout React and Angular 4. One day, I will read ECMAScript documentation to the heart! maybe.
When I had my OOP class in Computer Science, we were told there are two types of OOP, one based on classes and one of prototypes, but the prototype one isn't spread too wide. Well, the professor didn't count JS as "real" language and so he didn't went into any detail about prototypes and went full on Java and C#.
Then there is the mostly asynchronous nature of JS, the higher order functions, the lambdas, the closures, the monads, the context based "this" and not to forget the crap-load of history over the decades.
Just do it step by step, you don't need everything to get started. Heck, you don't even need everything to get finished, I mean many concepts weren't part of the languages to begin with and still people wrote nice applications with it. :)
Nice article. This summarize the fear I had back in my days of 3rd year as a Computer Science student (2007, I guess). That was a time of plenty 'revolutionary' java Web frameworks, and I knew none of them.
I think this is a technology dilemma that will never end: there is always a 'sexy' technology that everybody talks. And here is my advise: focus on learning the programming paradigms and the benefits of them, not just frameworks. If you are learning different languages, as you said, you are already in the right path, I think. The best job offer is the one which takes you as a programmer, and not as a framework specialist, so, for you will be a matter of time.
So you was in the exact same situation, and I think you are absolutely right, even if I don't know JS (yet!) If I'm good at programming I will find something interesting.
React is also a salad of anti-patterns reminiscent of early 90s PHP spaghetti code. Inline XML, seriously? I would argue that jQuery is a pretty solid DOM toolkit and a no-nonsense way to introduce oneself to, ahem, the actual DOM.
All you have to fear is fear itself.
One suggestion I have is, if you have learned any functional programming in your studies or work, look into how it applies in JS. JS is, you see, a functional language masquerading as an imperative one. My big breakthrough in understanding came when someone gave me the (simplistic but useful) advice to treat JS as 'LISP with C-like syntax'. IOW, understand functions as first-order data, and start passing them as parameters to functions, etc. Start thinking of polymorphy in mathematical terms rather than OOP terms. Compose rather than inherit to create classes.
Only use a framework when you actually need it.
So if you have free time nothing better than spending it learning something new, or improving your current knowledge, believe me, doing that helped me to exit a stressful situation in my life, and now that I'll graduate, having a job with a good salary being recent grad is a really good achievement, best of luck man!
It's never a waste of time taking in the native/core/vanilla/"basics" of anything, really.
You are a Escobar. You will be fine ;-)
Every now and then I find myself returning to this: Programming with Anthony youtu.be/a1tPbfu-fLY
I recommend you to learn the functional paradigm too...pure functions, immutable data, etc. and how to do it with JS.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.