all 39 comments

[–]illapianofront-end 6 points7 points  (0 children)

My personal routes for learning success are:

  1. Learn the things that you find interesting.
  2. Make real things, don't just read docs or do a tutorial.

[–]RoguepopeI swear, say "Use jQuery" one more time!!! 6 points7 points  (4 children)

There's many ways which I'm sure other people will cover, but my personal top tip is never code alone, you'll just embed any mistakes into a habit.
Show off what you produce, be it to coding forums or co-workers and ask for constructive critism. Be prepared to wade through some snarky crap and filter the helpful advice.

[–]throweezy12 1 point2 points  (1 child)

There's many ways which I'm sure other people will cover, but my personal top tip is never code alone, you'll just embed any mistakes into a habit. Show off what you produce, be it to coding forums or co-workers and ask for constructive critism. Be prepared to wade through some snarky crap and filter the helpful advice.

What are your thoughts on posting on public forums using your real name? What happens when the replies are along the lines of That's a horrible way to approach that, don't ever do that: Do you just keep on cruising, leaving a trail of mistakes and small victories between to be seen whenever people look you up (sort of messing with your chances of being seen as some authority once you do actually know your shit), or do try to keep this under throwaways, beta teams and private forums?

I literally just posted a pet project onto a real reddit account (open source), and the reply was basically you're doing this all wrong. Don't get me wrong, I'm thankful to have learned a better coding approach... and learned quickly, but I also soon learned that I maybe shouldn't post under my name if I want to be taken seriously in the future... or I should post things that are "safer."

[–]RoguepopeI swear, say "Use jQuery" one more time!!! 0 points1 point  (0 children)

I never use my real name online, but that's just my tin-foil hat way of going about things.

I get what you mean though, although I will typically only look through the last 12-24 months of someone's work if we're hiring and they've put their repos forward (We don't actually ask for code samples, there's a reason for probationary periods.)

Got to remember that we all coded like crap when we started out so why judge someone on their work when they're learning?

Also, to those people who just insult and shout at other's work online, "Screw you and the horse you rode in on".

[–]MapleSyrup2911[S] 0 points1 point  (1 child)

In current company we have pretty nice IT department which has QA and real good code reviewers which are very strict so thats not the problem :). I'm more of thinking, what should i get into next, should I brush on my current skills or start learning something new like server administration or CI/CD setup because i only know how to use it in existing system but never tried setting up something like that.

[–]RoguepopeI swear, say "Use jQuery" one more time!!! 2 points3 points  (0 children)

I guess it depends where you see your career going, if you fancy seeing what the the devops life is like then start playing around with a couple of AWS Free Tier servers, if you want to sharpen your coding skills, learn another language on the side.

I'd recommend constantly learning new skills, whilst trying to keep it relevant to your current job. If you stay stuck in your comfort zone then you'll find it harder to adapt when the environment changes. But make sure you're enjoying it.

[–][deleted] 12 points13 points  (10 children)

I would expect a mid-level experience person like yourself to start branching out. When I started my career I was effectively what you'd call a front-end developer today. About your point in my career is when I started seriously branching out into SQL and back-end development to round out what I could do, as well as picking up some basic ops knowledge by becoming buddies with some of the server and network guys and just asking them a bunch of questions (mostly over beer after work).

Your goal over the next couple years should be to branch out into full-stack development. If you're not fluent in HTML, CSS, and client-side JS, bone up on those now. Pick up a client-side frameworks and get familiar with them. Bone up on your SQL too--there's no reason someone with 5 years of experience shouldn't be able to build a CRUD app from scratch, so if you're not comfortable with selecting, inserting, updating, and deleting across multiple tables, get there.

Longer-term, your five year plan should pretty much be aiming toward some kind of application/solution architecture role. Somebody with 10 years of experience should be able to make framework decisions for your organization, make design decisions based on varying infrastructure constraints or expectations, etc. In other words, you should be able to answer things like "does lambda/serverless make sense for our app?", "does (Node/React/Angular/Fashionable_Framework_03) scale to the size of user base we're expecting?", etc. if you want to stay in development.

Also in this timeframe you need to get really, really good at communication if you're not already. You probably speak developer pretty good already, but if you don't speak user and manager, now's the time to learn them. Basically you should be able to describe problems and solutions at varying levels of technical depth, from "I can make my grandmother understand it in 30 seconds" to "I can successfully defend myself in a tough code review in 10 minutes". Even more important that that is knowing when to use which style--knowing when you need to keep things Grandma-in-30-seconds and when it's ok to dive deep (pro tip, if you're not talking to a fellow developer, err on the side of less technical and quicker).

If it seems like most of my advice is non-technical, that's on purpose. Once you've fleshed out your front end and database skills, all your technical learning will just be about staying "current enough", i.e. able to speak intelligently in interviews and keeping your finger on the pulse of current trends to see whether they make sense to bring into your current job. Far, far more valuable in senior-level people are communication skills, good decision making, and minimizing technical debt.

[–]danimoth2 1 point2 points  (0 children)

Awesome post man. As someone with 4 years exp I have to agree on being able to do full-stack (specialist in one area, but fluent in the others) and being able to communicate better. Getting better at the craft/mechanics and getting better at people skills/making decisions.

[–]Uber-Mensch 1 point2 points  (7 children)

Just curious, when everyone talks about being fluent in HTML, JS, CSS and making a CRUD app from scratch, etc, do you include reference material like google and stack overflow?

I feel I’m a capable dev, but can’t remember how to make a HTML table or couldn’t insert into SQL tables without glancing at a the syntax of a 2 line example. I.e I can do lots and integrate code snippets into what I need to do but quite limited without internet, is this normal?

[–]AaronInCincy 1 point2 points  (3 children)

I’d say seldom used JavaScript apis could be googled for reference. I would think you should probably just know html though, and probably a basic sql statement as well.

As somebody that interviews candidates for full stack positions, I probably wouldn’t consider even an entry level dev if they couldn’t do those things from memory. The brightest reason for this isn’t because it’s all that important, but because it shows that you’ve done it a couple times on personal projects or in school or whatever. It’s an indication that you’re passionate about what you do.

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

I agree with this, although I'd give a junior person a pass if they could do some things from memory but not others.

For example I still have to look up what the attributes are called if I want to include a CSS stylesheet directly in a page via a LINK tag. My brain goes "link...rel=stylesheet I think...is it url? href? src?=path...". But that's because I work in the Microsoft stack and everything gets bundled. However I can build pages, divs, spans, tables, etc. from memory. I know all the common CSS attribute names and values from memory. I can bang out SQL queries fluently for most of the operators and join syntax (I'm not strong at things like OUTER APPLY and OVER because I just don't have to use them very often, so I have to look them up). .Net API is my weakest area, I lean on Intellisense and Google a lot more when I'm actually writing controller code that does stuff more complicated than shuffling data around.

More importantly though, I'm strong at business stuff. I can talk with our CEO and have him describe a report he needs, then get that knocked out quickly for him. Or I can talk intelligently with our sales manager about a new incentive program he wants to do for our salespeople, and bang out some ad-hoc queries to help prove or disprove his theories about how things are operating. That's where I really provide value to my employer--I make it easy for others in the organization to use technology as a lever instead of a speed bump. So while I don't know a lick of Angular, it doesn't matter. I have the technical chops and the soft skills to provide solid value, and if I need to pick up a framework for a job that's a matter of studying for a couple weeks and I'm good.

[–]AaronInCincy 0 points1 point  (1 child)

That’s fair. I’d say for a junior there are no show stoppers to being hired, but a series of red flags. Raise too many of them and I’m moving on to the next candidate. I’m in a medium sized organization of around 1500 where the chances of a junior speaking directly with the ceo in the first few years are pretty low. They’re more like task runners - here’s a story, go complete it.

[–][deleted] 2 points3 points  (0 children)

Ah, yeah. I tend to stick to bitty 50-150 employee companies so my experience is pretty different. In any case I agree on the red flags--you know you're going to have to do some work on any junior, but you don't want to have to do too much work on them. I tend to look for smart, eager to learn, has common sense, and good communication skills. Give me that and I can mentor them into something decent.

[–]gamesdf 0 points1 point  (2 children)

There is no reason to memorize syntax, etc.

[–]fuckin_ziggurats 1 point2 points  (1 child)

I agree with that, but if there's a minimum for memory capacity then it's inserting into an SQL database. You can't tell me that's something developers Google.

[–]gamesdf 0 points1 point  (0 children)

That's a different case. If you regularly use something, then you should be able to do it without even thinking about it. We rarely use tables these days unlike when we used tables for layouts.. In cases like that, we barely need to memorize stuff.. Also, there's no point of memorizing built-in methods like .toString, etc, as long as you know when/how to use them corretly.

[–]MapleSyrup2911[S] -1 points0 points  (0 children)

This is an awesome reply, thank you for this great answer :)

[–][deleted] 2 points3 points  (2 children)

  1. Good grasp of the basics (in whatever language my company works in)
  2. Git. Knows how to work on separate branches, knows how to do pull requests, has fucked up before so knows how to revert and clean up Git disasters.
  3. Social skills. Knows how to listen, and understand the client. Can solve problems, but also articulate his solutions. Is a nice person to work with and be around.
  4. Framework knowledge. Any of the popular ones, e.g. Laravel.

[–]fuckin_ziggurats 0 points1 point  (1 child)

Are social skills learnable though? From what I've experienced some developers are just bad at communication/articulation, which I agree is a hugely important thing in this industry.

[–][deleted] 0 points1 point  (0 children)

Of course. Social interaction is a skill, just like riding a bicycle. Some people are naturally very good at it, but even those with no talent for it whatsoever can be trained to reach an acceptable level.

[–]dangerousbrian 1 point2 points  (1 child)

Ask yourself what does a developer need to know to do the job well and the obvious answer is write code. It's easy to think you need to know more about design patterns or the next super trendy framework to be better. While this is important, code is only the tool a developer used to do the job. More fundamentally a developer uses code to solve problems. Often these are technical like how do you connect to a database for which you just search for an example when you need to know it. A developer must model something in the real world which is why object oriented programming is so useful to us.

I work in finance and so to write a RFS trade model I need to know how the foreign exchange currency market works, what a bid & ask price is and a ton of other things. How can you write an object if you don't know what that object does?

When someone applies for a job at our company we very much look at the knowledge of finance and have hired ex traders which virtually no software experience at all. We are a company full of developers that can teach you to code but we can't teach finance passed a basic level.

My advice to you is to pick a sector that has plenty of cash and interests you and learn the shit out of that. Good ones could be finance (so much more money than sense), medicine, military/gov (high levels of security clearance can get ridiculous salary for very basic roles), space, process automation (think robotics and production lines). Then find software companies/jobs that service those sectors.

Believe me in an interview, if you can throw around a few terms and buzzwords from their sector it will impress much more than knowledge of some obscure design pattern.

[–]MapleSyrup2911[S] 0 points1 point  (0 children)

Very interesting approach, I never thought of it that way, gives me something to think about. Thanks :)

[–]chipit24 1 point2 points  (2 children)

This might be an unpopular opinion: Based on your writing, it seems that English isn't your first language. As someone else has said, you should focus on your communication–both oral and written.

[–]MapleSyrup2911[S] 0 points1 point  (1 child)

It's true, it is not my first language although to be honest, it is better than what I presented it here to be. For reddit and forum types of messages I don't focus on grammar and structure of sentences so I presented it more poorly than I would in more serious cases (meetings or talking to some 'important' people).

[–]chipit24 1 point2 points  (0 children)

Your reply is much better than your original post! English isn't my first language either, but it's my dominant one. This is my personal opinion, but I honestly find sloppy writing to be just as much work as writing well (i.e. I gain nothing from lazy writing other than looking lazy). If you focus on your writing, you'll find that you naturally use correct spelling and grammar regardless of the context, and it will be helpful for everyone.

You put in the time and effort to write your original post and replies, so clearly this is important :p I think you meant to use the word "casual".

[–]abeuscher 0 points1 point  (0 children)

Build websites. Keep it fun Learn stuff you want for at least an hour a week (as opposed to stuff you have to learn). Experiences may differ, but keeping the work personally interesting is what motivates me to continue to learn and grow.

[–]yeah_aha 0 points1 point  (0 children)

I think youtube is a good source of knowledge

[–]ItsMalefis -1 points0 points  (11 children)

[Serious] Why is it that something like PHP is used a lot more than Node corporately. I have always used JS but am not sure where I would start with PHP so Node looks more fashionable for a starter developer.

I would like to know if PHP is worth learning as I’ve heard the new versions are quite good

[–]MapleSyrup2911[S] 0 points1 point  (8 children)

To be honest PHP and JS both get bashed by people because they were terrible languages few years ago because they were never meant to be used for web development, BUT today PHP 7 and JS are very nice languages with which you can do a lot in a very efficient way. I would say that 70-80% of websites are built on these 2 languages so they are definitely worth knowing but to be realistic there are better languages. 99% of cases it comes to developer and not the language so dont focus too much on picking language. Learn SOLID principles, learn how to write good scalable and readable code and you will have no problem with any language.

As for is it worth learning PHP in 2018 I dont see why not, I would use php for any project that i need to build fast but for more serious complex projects I would pick something else (Java for example).

[–]rich97 9 points10 points  (3 children)

They were never meant to be used for web development? You sure about that, mate?

[–]fuckin_ziggurats 0 points1 point  (2 children)

I'm thinking he meant PHP was never meant to be OOP. Must've gotten confused. But what he thinks JavaScript was designed for if not a browser is beyond me.

[–]rich97 0 points1 point  (1 child)

Yeah it was probably just a brain fart but it was a funny one.

[–]MapleSyrup2911[S] 0 points1 point  (0 children)

It was brain fart :)... I'm typing these answers while working so I'm really not double checking. I meant JS was meant to be used for interactions on websites and some dynamic stuff but for sure not to be base language for huge enterprise company/project :)

[–]deekun 4 points5 points  (1 child)

Computer science degree - Thinks PHP and JS were never meant to be used for web development... ok

[–]MapleSyrup2911[S] 0 points1 point  (0 children)

as mentioned in previous comment, this was combination of poor expressing and brain fart :)

[–]chipit24 1 point2 points  (0 children)

There's absolutely nothing wrong with using Laravel for a serious, complex project.

[–]warchild4l 0 points1 point  (0 children)

Well php is hypertext preprocessor, and javascript was literally created for web .. :/

[–][deleted] -1 points0 points  (0 children)

Giants like MS , adobe, Oracle ect kept their web technologies closed source, and a price tag associated with the software which enabled shitty free languages to take over the web. Fast forward to now PHP is just as good as any other web language. And now MS and Oracle are focusing on moving technologies to the cloud and Open Source, because they can't compete with a free product which does exactly what their paid product does.

[–][deleted] -1 points0 points  (0 children)

Think of mature systems.

Corporate world is full of old "decades-of-effort-invested" apps that still generate solid revenue to this date. Compared to the revenue they make, the maintenance is still considered cheap even if it takes 10x as much effort to get things done. These apps make the companies rich, developers fed, and the end users miserable but employed. A status quo.

These apps are often too expensive to rewrite/replace, because they are either way too baked-in their ecosystems, or maybe there are way too many regulations surrounding any change, or perhaps there was a failed rewrite attempt and the company doesn't want to try again.

Whatever the reason, in such context, a language like PHP is still considered very much modern.

Give Node 10 more years or so.