I agree with Glenn. That is work with one set of technologies which completes the whole stack of web development from data base and backend web framework to a Front end MVC and maybe even a CSS framework.
I think Once you know and understand a certain stack of technologies which is capable to delivering a full fleged application, then basically you are capable of delivering a web product, which is the overall point of all these technologies.
Also only when you understand a certain stack of technologies to a level of detail, so that you can deliver production ready application, then it will much
I agree with Glenn. That is work with one set of technologies which completes the whole stack of web development from data base and backend web framework to a Front end MVC and maybe even a CSS framework.
I think Once you know and understand a certain stack of technologies which is capable to delivering a full fleged application, then basically you are capable of delivering a web product, which is the overall point of all these technologies.
Also only when you understand a certain stack of technologies to a level of detail, so that you can deliver production ready application, then it will much easier to dwell into other technologies and swap few layers in your preferred tech stack with something new. At that stage you will know that you will be needing a certain set of function in a data base ORM or ODM when working with db and a OOP language. Also you will know the differences between the technologies that you considering to use to suit you special need for a new application.
personally, i am working with the node.js platform and the whole ecosystem around it for testing and automation. On the database side i am working with mongodb (mongoose) and neo4j (node-neo4j), and Backbone.js for the front end MVC.
1. Overpaying on Auto Insurance
Believe it or not, the average American family still overspends by $461/year¹ on car insurance.
Sometimes it’s even worse: I switched carriers last year and saved literally $1,300/year.
Here’s how to quickly see how much you’re being overcharged (takes maybe a couple of minutes):
- Pull up Coverage.com – it’s a free site that will compare offers for you
- Answer the questions on the page
- It’ll spit out a bunch of insurance offers for you.
That’s literally it. You’ll likely save yourself a bunch of money.
2. Overlook how much you can save when shopping online
Many people over
1. Overpaying on Auto Insurance
Believe it or not, the average American family still overspends by $461/year¹ on car insurance.
Sometimes it’s even worse: I switched carriers last year and saved literally $1,300/year.
Here’s how to quickly see how much you’re being overcharged (takes maybe a couple of minutes):
- Pull up Coverage.com – it’s a free site that will compare offers for you
- Answer the questions on the page
- It’ll spit out a bunch of insurance offers for you.
That’s literally it. You’ll likely save yourself a bunch of money.
2. Overlook how much you can save when shopping online
Many people overpay when shopping online simply because price-checking across sites is time-consuming. Here is a free browser extension that can help you save money by automatically finding the better deals.
- Auto-apply coupon codes – This friendly browser add-on instantly applies any available valid coupon codes at checkout, helping you find better discounts without searching for codes.
- Compare prices across stores – If a better deal is found, it alerts you before you spend more than necessary.
Capital One Shopping users saved over $800 million in the past year, check out here if you are interested.
Disclosure: Capital One Shopping compensates us when you get the browser extension through our links.
3. Not Investing in Real Estate (Starting at Just $20)
Real estate has long been a favorite investment of the wealthy, but owning property has often felt out of reach for many—until now.
With platforms like Ark7, you can start investing in rental properties with as little as $20 per share.
- Hands-off management – Ark7 takes care of everything, from property upkeep to rent collection.
- Seamless experience – Their award-winning app makes investing easy and efficient.
- Consistent passive income – Rental profits are automatically deposited into your account every month.
Now, you can build your own real estate portfolio without needing a fortune. Ready to get started? Explore Ark7’s properties today.
4. Wasting Time on Unproductive Habits
As a rule of thumb, I’d ignore most sites that claim to pay for surveys, but a few legitimate ones actually offer decent payouts.
I usually use Survey Junkie. You basically just get paid to give your opinions on different products/services, etc. Perfect for multitasking while watching TV!
- Earn $100+ monthly – Complete just three surveys a day to reach $100 per month, or four or more to boost your earnings to $130.
- Millions Paid Out – Survey Junkie members earn over $55,000 daily, with total payouts exceeding $76 million.
- Join 20M+ Members – Be part of a thriving community of over 20 million people earning extra cash through surveys.
With over $1.6 million paid out monthly, Survey Junkie lets you turn spare time into extra cash. Sign up today and start earning from your opinions!
5. Paying off credit card debt on your own
If you have over $10,000 in credit cards - a debt relief program could help you lower your total debt by an average of 23%.
- Lower your total debt – National Debt Relief works with creditors to negotiate and settle your debt for less than you owe.
- One affordable monthly payment – Instead of managing multiple bills, consolidate your payments into one simple, structured plan.
- No upfront fees – You only pay once your debt is successfully reduced and settled, ensuring a risk-free way to tackle financial burdens.
Simple as that. You’ll likely end up paying less than you owed and could be debt free in 12-24 months. Here’s a link to National Debt Relief.
6. Overspending on Mortgages
Overpaying on your mortgage can cost you, but securing the best rate is easy with Bankrate’s Mortgage Comparison Tool.
- Compare Competitive Rates – Access top mortgage offers from trusted lenders.
- Personalized results – Get tailored recommendations based on your financial profile.
- Expert resources – Use calculators to estimate monthly payments and long-term savings.
Don’t let high rates limit your financial flexibility. Explore Bankrate’s Mortgage Comparison Tool today and find the right mortgage for your dream home!
7. Ignoring Home Equity
Your home can be one of your most valuable financial assets, yet many homeowners miss out on opportunities to leverage its equity. Bankrate’s Best Home Equity Options helps you find the right loan for renovations, debt consolidation, or unexpected expenses.
- Discover top home equity loans and HELOCs – Access competitive rates and terms tailored to your needs.
- Expert tools – Use calculators to estimate equity and project monthly payments.
- Guided decision-making – Get insights to maximize your home’s value while maintaining financial stability.
Don’t let your home’s value go untapped. Explore Bankrate’s Best Home Equity Options today and make your equity work for you!
8. Missing Out on Smart Investing
With countless options available, navigating investments can feel overwhelming. Bankrate’s Best Investing Options curates top-rated opportunities to help you grow your wealth with confidence.
- Compare investments – Explore stocks, ETFs, bonds, and more to build a diversified portfolio.
- Tailored insights – Get tailored advice to match your financial goals and risk tolerance.
- Maximize returns – Learn strategies to optimize investments and minimize risks.
Take control of your financial future. Explore Bankrate’s Best Investing Options today and start building a stronger portfolio today!
Disclaimer:
Found is a financial technology company, not a bank. Business banking services are provided by Piermont Bank, Member FDIC. The funds in your account are FDIC-insured up to $250,000 per depositor for each account ownership category. Advanced, optional add-on bookkeeping software available with a Found Plus subscription. There are no monthly account maintenance fees, but transactional fees for wires, instant transfers, and ATM apply. Read more here: Fee Schedule
The vast majority of new tech, frameworks and tools are:
- The same as old tech, but with different names. When I need to use one, I pick it up in no time because I recognise that it’s a repackaging of the same old fundamentals, as usual.
- Irrelevant. I ignore them until I need them, then I learn only what I need to get the job done.
As a software engineer, my focus is writing quality code to meet requirements, on time and under budget. My focus is not trying to stay current with all the new tech, frameworks and tools popping out every day. Instead, I learn them as I need them.
Indeed, the folks who
The vast majority of new tech, frameworks and tools are:
- The same as old tech, but with different names. When I need to use one, I pick it up in no time because I recognise that it’s a repackaging of the same old fundamentals, as usual.
- Irrelevant. I ignore them until I need them, then I learn only what I need to get the job done.
As a software engineer, my focus is writing quality code to meet requirements, on time and under budget. My focus is not trying to stay current with all the new tech, frameworks and tools popping out every day. Instead, I learn them as I need them.
Indeed, the folks who try to stay current with everything tend not to be very good engineers, because they’re not focused on the essence of good software engineering: writing quality code to meet requirements, on time and under budget.
Let me answer with an analogy…
“As a general contractor, how do you stay current with the tens of thousands of products that are available on the shelf at Home Depot?”
My brother-in-law is a general contractor; I’m sure he’d tell you that 99% of the stuff on the shelf at Home Depot is stuff that he doesn’t “stay current with”…
If it’s a new product in an area that he cares about, he can probably learn all he needs to know in 10 minutes… Will this make my job easier? Is it a more economical solution than what I currently use? Will my customer be glad that I used this, or will they regret it down t
Let me answer with an analogy…
“As a general contractor, how do you stay current with the tens of thousands of products that are available on the shelf at Home Depot?”
My brother-in-law is a general contractor; I’m sure he’d tell you that 99% of the stuff on the shelf at Home Depot is stuff that he doesn’t “stay current with”…
If it’s a new product in an area that he cares about, he can probably learn all he needs to know in 10 minutes… Will this make my job easier? Is it a more economical solution than what I currently use? Will my customer be glad that I used this, or will they regret it down the line?
If it’s a product in an area that he doesn’t care about, he can safely ignore it.
Software engineering isn’t much different. The sooner you make peace with the idea that 99% of the frameworks, tools, languages, etc., are things that you don’t care about, the happier you’ll be.
Once you’ve done that, it’s easier to stay on top of trends and changes in the 1% of stuff that you do care about.
For me, virtually the entirety of modern front-end programming falls into the 99% of stuff I don’t care about. I understand the concepts but none of the details, and I’m okay with that. The world is full of competent front-end programmers who can do that stuff, but who would feel lost if they tried to step into my areas of expertise like OS kernels and device drivers.
For instance, I recently tried to build a FreeBSD kernel from the downloaded sources, and it didn’t build because of a incompatibility between my kernel configuration and one of the network drivers. I didn’t throw my hands up in despair, I modified the network driver to get rid of the incompatibility. 99.99% of software engineers out there will never need to fix a FreeBSD network driver. For me, it amounted to not much more than a minor inconvenience.
Pick a couple and get really good at them. For example, I'm a big fan of MongoDb, so that's my concentration. Along with JavaScript and node.js. I also do a lot of work with single page applications.
I'm not a big fan of the various frameworks out there, so I've been working on my own.
Just pick some stuff that you like, preferably something with some value, and get good at them. Nobody can do everything.
Where do I start?
I’m a huge financial nerd, and have spent an embarrassing amount of time talking to people about their money habits.
Here are the biggest mistakes people are making and how to fix them:
Not having a separate high interest savings account
Having a separate account allows you to see the results of all your hard work and keep your money separate so you're less tempted to spend it.
Plus with rates above 5.00%, the interest you can earn compared to most banks really adds up.
Here is a list of the top savings accounts available today. Deposit $5 before moving on because this is one of th
Where do I start?
I’m a huge financial nerd, and have spent an embarrassing amount of time talking to people about their money habits.
Here are the biggest mistakes people are making and how to fix them:
Not having a separate high interest savings account
Having a separate account allows you to see the results of all your hard work and keep your money separate so you're less tempted to spend it.
Plus with rates above 5.00%, the interest you can earn compared to most banks really adds up.
Here is a list of the top savings accounts available today. Deposit $5 before moving on because this is one of the biggest mistakes and easiest ones to fix.
Overpaying on car insurance
You’ve heard it a million times before, but the average American family still overspends by $417/year on car insurance.
If you’ve been with the same insurer for years, chances are you are one of them.
Pull up Coverage.com, a free site that will compare prices for you, answer the questions on the page, and it will show you how much you could be saving.
That’s it. You’ll likely be saving a bunch of money. Here’s a link to give it a try.
Consistently being in debt
If you’ve got $10K+ in debt (credit cards…medical bills…anything really) you could use a debt relief program and potentially reduce by over 20%.
Here’s how to see if you qualify:
Head over to this Debt Relief comparison website here, then simply answer the questions to see if you qualify.
It’s as simple as that. You’ll likely end up paying less than you owed before and you could be debt free in as little as 2 years.
Missing out on free money to invest
It’s no secret that millionaires love investing, but for the rest of us, it can seem out of reach.
Times have changed. There are a number of investing platforms that will give you a bonus to open an account and get started. All you have to do is open the account and invest at least $25, and you could get up to $1000 in bonus.
Pretty sweet deal right? Here is a link to some of the best options.
Having bad credit
A low credit score can come back to bite you in so many ways in the future.
From that next rental application to getting approved for any type of loan or credit card, if you have a bad history with credit, the good news is you can fix it.
Head over to BankRate.com and answer a few questions to see if you qualify. It only takes a few minutes and could save you from a major upset down the line.
How to get started
Hope this helps! Here are the links to get started:
Have a separate savings account
Stop overpaying for car insurance
Finally get out of debt
Start investing with a free bonus
Fix your credit
As a contractor I need to keep my skills current to be attractive to as many potential employers as possible. Therefore, I take contracts that expose me to a lot of new tech and people I can learn from.
I keep up to date with technologies by reading online magazines such as Visual Studio Magazine and The Register.
If I find a particular piece of tech interesting I might dabble with it of a weekend. When you find it interesting you learn it faster, I think.
What I don’t do is worry. I know that the tech I’m using now is going to be dead in a few years.
Don’t get too attached to a particular NPM pac
As a contractor I need to keep my skills current to be attractive to as many potential employers as possible. Therefore, I take contracts that expose me to a lot of new tech and people I can learn from.
I keep up to date with technologies by reading online magazines such as Visual Studio Magazine and The Register.
If I find a particular piece of tech interesting I might dabble with it of a weekend. When you find it interesting you learn it faster, I think.
What I don’t do is worry. I know that the tech I’m using now is going to be dead in a few years.
Don’t get too attached to a particular NPM package.
Whether you are coding, manufacturing products or reaching out to customers, staying current with technology can help you be more effective at your job. Staying current with technology trends is important for several reasons:
- Finding a job: Even the simple act of applying for a job has changed. Many companies prefer digital files rather than paper resumes and cover letters. Keeping up to date with tech allows you to find and apply for jobs faster than ever.
- Career advancement: Staying current with technology can prevent your skills from becoming stale.
However You also need to be aware that most
Whether you are coding, manufacturing products or reaching out to customers, staying current with technology can help you be more effective at your job. Staying current with technology trends is important for several reasons:
- Finding a job: Even the simple act of applying for a job has changed. Many companies prefer digital files rather than paper resumes and cover letters. Keeping up to date with tech allows you to find and apply for jobs faster than ever.
- Career advancement: Staying current with technology can prevent your skills from becoming stale.
However You also need to be aware that most real-world jobs try not to touch any brand-new technologies at all, because they are tasked with maintaining legacy systems that have been in operation for at least a couple of years.
On the occasion that we develop something new, we almost always choose technologies that are already in use at our companies, so that it'll be easier to maintain with the same staff and tool chain we already have.
It's true that upgrading to new technologies generally brings its values -- i.e., increased revenue and/or lower operating costs. However, the cost of upgrading to new tech sometimes exceed the business value, at least in the short run. That, in turn, can incent some companies to stick with what they have, and opt to update instead of upgrading to new technologies.
As a cyber specialist , my focus often ranges from writing quality code to meet requirements, on time and under budget, or simply researching on new vulnerabilities and ways to defend them.
My priority is not to keep up with all of the new technology, frameworks, and tools that emerge every day. Instead, I learn them as I need them.
Indeed, those who try to keep up with everything aren't very good engineers because they're not focused on the essence of excellent software engineering: writing quality code to meet requirements on time and within budget.
No.
In fact your worries only increase. You will be relying on code you don;t see. How do you know which piece of your system is broken?
How do you decide how to structure your code - the stuff that is not in the libraries?
How about testing it - impeded by libraries?
What will satisfy user needs? Which libraries will help? Will they really? Are we sure?
What volumes of data storage, other infra costs, web traffic are we expecting?
How will we cope with scaling increases?
What about operating this software?
What about adding and changing the software?
Releases?
I don’t.
This would be a colossal waste of time. Not only will most of these technologies themselves have very short life-spans, but very few of them will be appropriate for any given project I’m working on.
If I’m architecting an app, I ask “What does the app need to do? What is the simplest way I can do that?” Libraries and frameworks only play into that second question, and when I’m answering that question, I’ll spend some time researching what is presently available, what has been used by others, what the pros and cons are, and I might prototype some basic things with my different options be
I don’t.
This would be a colossal waste of time. Not only will most of these technologies themselves have very short life-spans, but very few of them will be appropriate for any given project I’m working on.
If I’m architecting an app, I ask “What does the app need to do? What is the simplest way I can do that?” Libraries and frameworks only play into that second question, and when I’m answering that question, I’ll spend some time researching what is presently available, what has been used by others, what the pros and cons are, and I might prototype some basic things with my different options before making a choice.
The same is true while I’m developing on a smaller scale. I have a specific problem I’m trying to solve. Would adding a library make developing that feature faster and, if so, what are the liabilities of introducing that library? Is it well-maintained? Is it well-written? How likely are they push an update that will break my code? How likely will it be that other developers will either be familiar with the library or able to learn its interface quickly?
Engineer for the problem you’re solving. You don’t need to be a database of current tech fads. That’s what the Internet is for.
Thanks for the a2a.
No, that’s not true.
Many frameworks are in use, but that does. not mean that all companies use them. For a start most companies had applications in play long before the frameworks came out, and they don’t rewrite their entire systems.
You have to remember, software development has been around for a really long time now. I have code in repository that I started writing 17 years ago, without a framework. I’ve worked for a number of global companies that do not use frameworks, and one that springs to mind had code I needed to work on 34 years old (finding a bug in 34 yo software takes a long time)
No, that’s not true.
Many frameworks are in use, but that does. not mean that all companies use them. For a start most companies had applications in play long before the frameworks came out, and they don’t rewrite their entire systems.
You have to remember, software development has been around for a really long time now. I have code in repository that I started writing 17 years ago, without a framework. I’ve worked for a number of global companies that do not use frameworks, and one that springs to mind had code I needed to work on 34 years old (finding a bug in 34 yo software takes a long time)!
Most companies I’ve worked for, but small and global, do not use frameworks.
HTH
We don't! You will feel much better when you realize you don't need to.
Think of it this way: all professions are specialized. If I ask my dermatologist about the latest heart medication, she'll shrug. If I asked my Honda mechanic about recent developments in Chevy fuel injectors, he might not know. If I ask the children's librarian at the public library how she feels about changes to an academic database for engineering journals, she won't have an opinion.
All of these people are still competent professionals who are good at their jobs.
Pick a language or framework you like and get really goo
We don't! You will feel much better when you realize you don't need to.
Think of it this way: all professions are specialized. If I ask my dermatologist about the latest heart medication, she'll shrug. If I asked my Honda mechanic about recent developments in Chevy fuel injectors, he might not know. If I ask the children's librarian at the public library how she feels about changes to an academic database for engineering journals, she won't have an opinion.
All of these people are still competent professionals who are good at their jobs.
Pick a language or framework you like and get really good at it. Look for projects that use it. Go to those conferences. Follow the best folks in that field on Twitter.
If at some point in the future you want to move to a new language or framework, you'll have a head start. Just like learning Spanish helps you with French, knowing Python means Ruby will be easier. If you really understand Node.js, you will be able to pick up Angular if it comes to it.
Be good at your thing! If you ever need more knowledge, Google will still be there, no worries.
To give your an answer I feel the need of telling you about what programmers are. Please be with me for the next two paragraphs. And, remember! to check whether the core concepts you are learning are embedded in the next two paragraphs.
Any professional programmer has a foundational knowledge of operating systems, distributed computing, computer networks and security, data structures and algorithms, and one core programming language with which they studied their data structures and algorithms.
In their academics and career they also learn the practical aspects of unit testing, system design, int
To give your an answer I feel the need of telling you about what programmers are. Please be with me for the next two paragraphs. And, remember! to check whether the core concepts you are learning are embedded in the next two paragraphs.
Any professional programmer has a foundational knowledge of operating systems, distributed computing, computer networks and security, data structures and algorithms, and one core programming language with which they studied their data structures and algorithms.
In their academics and career they also learn the practical aspects of unit testing, system design, integration and deployment, and above all understand that programming is a social activity and it takes interaction with peers and/or customers.
With that kind of foundational knowledge a programmer now is equipped with the ability to learn any new programming language, a new type of programming like functional programming or a brand new framework.
They learn to follow documentation and quickly get on with making application that they need to make.
There is no problem with learning online through FreeCodeCamp, CodeAcademy and such. Only thing you need to realize is that these courses give you a start only and you are advised(or should be advised) at the end of these courses to create something with your new learning.
Creating something with your knowledge, like a capstone project would be one crucial phase of your learning where you would learn to apply your newly acquired knowledge. It also builds a great amount of confidence in you and takes care of that "overwhelming" part of your learning journey.
I hope it all made sense. All the best. If you have follow-up questions, then feel free to leave a comment and I will try to address those.
Update:
I greatly recommend a course from http://www.coursera.org : https://www.coursera.org/specializations/java-object-oriented
I mentioned this in response to the comment from Nate Kimball. I haven't seen a MOOC course like this before and I wish other MOOC courses on http://coursera.orgor otherwise would follow this pattern.
Although, the course is based on java, it truly would help build great versatile software engineers (without overwhelming them) for the world for what it needs.
Update March 23rd 2016:
I have been exploring https://www.freecodecamp.com/ and its very impressive. As a member of freeCodeCamp one gets to learn, discuss and apply. Members develop softwares for non profit organization, pro bono. And you know whats the best! Its the community that has grown around freeCodeCamp.
I recommend freeCodeCamp to learners who wants to learn programming in order to bring a change in their career and life. It reassures the power of OpenSource. I am very excited to be a learner and teacher at https://www.freecodecamp.com/
First, I would thank my manager/boss to have considered me for such a great opportunity for learning a new programming eco system.
Secondly, I would then spend a few days on preliminary research, from the net, talk to specialist people or basically whatever is available. For my own self try reason the feasibility of the work at hand.
Thirdly, with some knowledge at hand I would make sure that my manager and potentially the chain above him/her is well aware of the risks at hand, including those of typical project scope trimming, delivery delay or even complete failure. My superior will either aba
First, I would thank my manager/boss to have considered me for such a great opportunity for learning a new programming eco system.
Secondly, I would then spend a few days on preliminary research, from the net, talk to specialist people or basically whatever is available. For my own self try reason the feasibility of the work at hand.
Thirdly, with some knowledge at hand I would make sure that my manager and potentially the chain above him/her is well aware of the risks at hand, including those of typical project scope trimming, delivery delay or even complete failure. My superior will either abandon the project or commit to it with my conditions.
Fourthly, now that we are all on the same page, I’ll get some good music on, brew a nice cup of tea and get on with a paid learning vacation. :)
It seems reasonable to only "stay on top" of the latest language and framework needed in the project you are currently working on. Then it is possible to use newer latest language and framework with each subsequent project... What would I know, I usually work on projects that go on about many years...
That overwhelming feeling you mention is the feeling of learning. If you get comfortable with that feeling (=become well aware of it and learn to accept it as it is, do not try to change how you feel) then that is how you stay on top of latest languages and frameworks.
Sometimes it does make sense
It seems reasonable to only "stay on top" of the latest language and framework needed in the project you are currently working on. Then it is possible to use newer latest language and framework with each subsequent project... What would I know, I usually work on projects that go on about many years...
That overwhelming feeling you mention is the feeling of learning. If you get comfortable with that feeling (=become well aware of it and learn to accept it as it is, do not try to change how you feel) then that is how you stay on top of latest languages and frameworks.
Sometimes it does make sense to work with same tools for long enough to feel the comfortable "boredom" of things starting to feel like repeating the things you already "mastered". But it is not necessary to aim for that comfort.
Why I think that way?
Year ago I felt like a dinosaur still learning new but not have got myself into this "web"-programming, when I was pushed into coding bootcamp where the fundamentals of "how we gonna do it" was introduced. Yeah, it was like diving into cold water; aspects of css, html, js, ts, ng, ... half-dozen of different "models" and "factories" thrown into my face. Few hours bootcamp. Then I was left alone to start coding "same stuff as before" but with new languages and frameworks.
Funny thing is... it never ceased to be crazy like that.
Back in the days, since I was so good with C but due to circumstances, only been coding in other languages (yeah, including C++) for years. Someone asked "Do you know what semaphore is?" and I said "Yes!", which ended up with my several years path as C-programmer for embedded/real-time operating systems. Before that I did not even know what "real-time" is trying to mean.
Every time I jump cold into myriad of unknown like that, the truckload of anxiety coming with it, the desperation and struggle coming with it, I feel like "I should Quit my Job because I am a Fraud and know Nothing". Then slowly the ice starts melting and there is periods of awesomeness, great productivity, new challenges with core changes that drop me back to ground, etc... Looking back, and thinking what I do right now, this seems to be the way it is.
Perhaps sometimes I wish I could jump into new project again, where I would land right in middle of languages/frameworks I already learned before. But world does not seem to go that way.
I have a passing familiarity with most of the prpjects on GitHub, especially if they actually have 3 or more contributors, and are under active development. If it’s just one or two people, or it’s not being actively maintained, it’s not going to be interesting enough for me to include in a project.
If I come to a project that’s already using such a framework (be real: you just mean “library plus he
I have a passing familiarity with most of the prpjects on GitHub, especially if they actually have 3 or more contributors, and are under active development. If it’s just one or two people, or it’s not being actively maintained, it’s not going to be interesting enough for me to include in a project.
If I come to a project that’s already using such a framework (be real: you just mean “library plus header files”; it’s amusing, however, that e...
Hit the internet and read up on it.
A good developer who understands the nuances of software development should have little to no trouble reading technical documentation.
This is why you should NEVER learn to do software development by learning a language, because if you do you miss learning essential analytical skills that you need in situations like this.
Once you have and understand these analytical skills I’m talking about, you’ll understand exactly what I mean, it’s not really something that can be described, it’ll just happen, you’ll get your penny drop moment, and all of a sudden things wi
Hit the internet and read up on it.
A good developer who understands the nuances of software development should have little to no trouble reading technical documentation.
This is why you should NEVER learn to do software development by learning a language, because if you do you miss learning essential analytical skills that you need in situations like this.
Once you have and understand these analytical skills I’m talking about, you’ll understand exactly what I mean, it’s not really something that can be described, it’ll just happen, you’ll get your penny drop moment, and all of a sudden things will be clear.
When you get to that stage, you’ll be able to look at any language or framework, and combined with prior knowledge, be able to see the similarities and differences straight away, and the result will be that, you’ll find switching between them all fairly easy.
There is no shortcut or magic formula to get to this point however, it is very much a long process of continuous study and hard work, and you will get frustrated and want to quit, you will feel small and insignificant and want to quit, you will get tired of studying long hours and want to quit, BUT you WILL eventually start to get there, you will start to understand, and you will start to get your penny drop moments when things just fall into place, just don’t be impatient about learning, it takes time and dedication.
The simple reasons are this:
- You may change and having flexibility will allow you to change more easily
- You job situation may force a change and to avoid relocation and other difficulties you may have to accept a position functioning in a different framework or language
- It will enhance your knowledge of what is possible
I’ve been a developer for over 40 years. In that time I’ve worked in:
- FORTAN
- Cobol
- Assembly
- BASIC
- C
- C++
- Delphi (Object Pascal)
- PHP
- Java
- Objective C
- C#
Starting with the first 3 languages on the list the OS and “framework” if you could even call it that were very different. FORTRAN was run as s
The simple reasons are this:
- You may change and having flexibility will allow you to change more easily
- You job situation may force a change and to avoid relocation and other difficulties you may have to accept a position functioning in a different framework or language
- It will enhance your knowledge of what is possible
I’ve been a developer for over 40 years. In that time I’ve worked in:
- FORTAN
- Cobol
- Assembly
- BASIC
- C
- C++
- Delphi (Object Pascal)
- PHP
- Java
- Objective C
- C#
Starting with the first 3 languages on the list the OS and “framework” if you could even call it that were very different. FORTRAN was run as simple jobs on a mini computer and really could not rely on much other than the program itself.
Each of these serves specific purposes. Some are better than others at solving specific problems.
If I have to read in a bunch of data and crunch it I’m likely to use C as it is low-level and very fast. I have no UI to worry about and it will probably get the job done as quick as possible.
If I have to build data for web display I will likely use PHP as it is widely supported and easy to use in server side apps.
If I need to build a nice desktop UI I will probably use C# or Delphi as both over nice UI tools. C# might be better since its use is wider.
In 40 years of developing and moving from job to job I long ago lost the religious love of any particular language or framework. I use whatever the job demands and hope I can influence people to seek the best tool for the job.
I think younger developers and teams tend to get caught up in religious love or devotion to practices rather than focusing on the task to be done.
Getting back to your question… You really do have a choice. If you want to specialize in a particular language and framework then more power to you. I can only hope it goes well.
But in my career things often changed so had I not learned C, Java, Delphi, C# .NET then I’d probably have been forced into early retirement.
It looks like you know a lot (from the big s/w list) :D
- I personally first go to a tutorial and learn it online, for example, I want to learn Python, then I type “Python tutorial” in Google, and I believe Google does it’s job correctly.
- I only believe 1st 5 links and go into them, see if I can understand the language of Author of the tutorial easily. If it is, then I complete the tutorial in max of 10 days, then I believe that I know that programming language.
- The trust here is more on Google, google won’t give an incomplete tutorial to me, so its good enough to feel confident that programming la
It looks like you know a lot (from the big s/w list) :D
- I personally first go to a tutorial and learn it online, for example, I want to learn Python, then I type “Python tutorial” in Google, and I believe Google does it’s job correctly.
- I only believe 1st 5 links and go into them, see if I can understand the language of Author of the tutorial easily. If it is, then I complete the tutorial in max of 10 days, then I believe that I know that programming language.
- The trust here is more on Google, google won’t give an incomplete tutorial to me, so its good enough to feel confident that programming language is known to me.
- Before the point 1, I make sure that I have correct programming language basics like if-else, for loops, etc.. This comes from an earlier learnt language experience.
- After the point 1, I confirm my understanding by going to a documentation called full reference, for example, search again for “cpp reference” in Google, then read everything on the programming language, this is ultimate and final step.
When I do all of the above, I know the programming language in full. If I practice I remember else I forgot. But I still know that I know the language. Most times, I get a free certificate as soon as I learn to show to others in case someone doubts me, for example, say, from Brain Measures: Online Certification, for example, for C++ see Free C Intermediate Level Test l exam, try to get a 8/10 at least in every language certification, until then (learn & write exam) in a cycle, this way confidence doubles. this kind of certification is good since someone else is certifying you, and you will know instantly if you learn enough or something else related is missing. It’s always good to know if we know everything or not that we learnt something in full through some certification, also will be useful for interviews, on job, freelancing and such.
For professional courses, for example, Java see below link:
JAVA SE Certification Paths - Oracle Certified Associate (OCA) / Professional (OCP)
Hope that helped. My bio may have latest details, see here.
We don’t (I don’t classify myself as ‘software engineer’ because ‘engineer’ really doesn’t apply to software development).
But I try to know something about what is going on, and most of my time is spent on that. Donald Knuth observed that in the early 1960s you could know all of computer science, but in 1999 it was so broad it was impossible.
Some don’t even try – they think (erroneously) they have learnt enough. We should always be trying to improve our knowledge and skills. When you put new ideas before them to address the problems of tools they use, they get really defensive as it if is a cu
We don’t (I don’t classify myself as ‘software engineer’ because ‘engineer’ really doesn’t apply to software development).
But I try to know something about what is going on, and most of my time is spent on that. Donald Knuth observed that in the early 1960s you could know all of computer science, but in 1999 it was so broad it was impossible.
Some don’t even try – they think (erroneously) they have learnt enough. We should always be trying to improve our knowledge and skills. When you put new ideas before them to address the problems of tools they use, they get really defensive as it if is a cult. To keep up (or not) the cult and fad thinking of computing needs to be resisted (you don’t get anywhere unless you do that).
It is important to evaluate languages, development environments, techniques, know the traps and flaws and think what the next thing could be and to see what others have similarly found and developed. Don’t get stuck in cults.
Bob Barton noted in 1967:
"Systems programmers are the high priests of a low cult."
Sadly, that situation is far worse today.
Bob Barton was the original ‘think different’ guy who went on to teach Alan Kay and others. That thinking went into Steve Jobs, who explicitly implored people to ‘think different’. Perhaps that is the fundamental starting point to keeping up Think Different.
Currently I am reading a Communications of ACM paper on Spectre, and just finished one on Meltdown. Yesterday I was reading a section on RISC in a language book that showed a diagram of Maurice Wilkes 1951 design of a microprocessor, so I read that paper (thankfully only short). Didn’t explain it, so now I’m watching a YouTube on how this actually worked
There are a few new things to learn everyday.
Understand models of computation. Roy Fielding’s REST thesis is a good place, but a long read, and I did read it every year with other books until I got it (and can now give lectures on it).
Another topic is BitCoin and BlockChain. Again CACM articles, and I think I finally understood enough to do a lecture for students.
Don’t just read computing stuff. Yesterday I looked into philosophical writings of Kant on deontic logic, then ontology vs taxonomy. Remember computers are really philosophical machines. There are lots of trails.
Having said that – you never get to the end and it is impossible to keep up with everything.
Well, currently if you want to learn things in easier and efficient way then go for these languages.
Client Side
------------------
1. HTML, HTML5 -
Well you have to use these anyways, there's no alternative.
2. Jquery -
(Which is javascript only) - Built over javascript, jquery is amazingly fast and too easy to use. Once you understand the basics of jquery going along with it and adding the client side functionality becomes too easy
3. CSS - (For designing and CSS 3 supports awesome animation)
Server Side
---------------------
1. PHP - To begin with PHP is an awesome language, very easy synt
Well, currently if you want to learn things in easier and efficient way then go for these languages.
Client Side
------------------
1. HTML, HTML5 -
Well you have to use these anyways, there's no alternative.
2. Jquery -
(Which is javascript only) - Built over javascript, jquery is amazingly fast and too easy to use. Once you understand the basics of jquery going along with it and adding the client side functionality becomes too easy
3. CSS - (For designing and CSS 3 supports awesome animation)
Server Side
---------------------
1. PHP - To begin with PHP is an awesome language, very easy syntax, easy to program, run and test. Trusted and tested. Is used by the big guys like facebook also.
Use PHP with some framework, like the codeigniter or cake framework of PHP, they make things very easy for you. Frameworks save a lot of time and help you to develop fast and collaboratively.
2. JSP - I haven't worked with it, but have heard it has some good inbuilt libraries to start with.
3. Python Framework - There are many available frameworks of python also which you can use for doing the server side development. Its comparatively new. Quora uses one python based framework if I'm not wrong.
PS - On your backend you might also have to run languages like C++/ Java/ Python, etc to do some jobs which might prevent additional load on your Servers, so knowing one of these languages will also help you do things on the backend fast and prevent additional load on your server.
My Advice
Start with HTML5, Jquery, CSS, and PHP for beginning. You won't face any problem and learning will be a breeze. You can do anything and everything using this language arsenal. If you get stuck up on anything then well, Stackoverflow is your friend. :)
Welcome to the world of JavaScript fatigue!
As you have discovered, JavaScript presents entirely new challenges for developers when it comes to tracking, parsing, and interpreting the world in which they operate. The tools seem to be changing on a daily basis, as such, since truly appreciating a tool takes quite some time, you must choose which tools to learn based on metrics other than the actual merits of the tools!
Believe me, I know how frustrating that sounds. For someone who is dedicated to, and derives a sense of personal worth and satisfaction from, quality work, making decisions based o
Welcome to the world of JavaScript fatigue!
As you have discovered, JavaScript presents entirely new challenges for developers when it comes to tracking, parsing, and interpreting the world in which they operate. The tools seem to be changing on a daily basis, as such, since truly appreciating a tool takes quite some time, you must choose which tools to learn based on metrics other than the actual merits of the tools!
Believe me, I know how frustrating that sounds. For someone who is dedicated to, and derives a sense of personal worth and satisfaction from, quality work, making decisions based on something other than quality is anathema. Sadly, you don’t really have any choice. You cannot possibly learn React, Angular, Elm, Ember, Vue, Mythril, Bobril, Aurelia, or the nine thousand other tools out there. At most, you can learn two.
And for that, I’ve said this time and time again, make your decision based on what will get you a job. You can track job terms on Indeed’s Job Trends charts (Job Trends | Indeed.com), and see what other developers are using on developer surveys on Stack Overflow (Stack Overflow Developer Survey 2017) and Hackerrank (2018 Developer Skills Report by HackerRank). This will give you an idea of what tools are actually being used to build things and make money and not merely be played with… I’m looking at you Vue.
This criterion significantly reduces the tools that you need to examine. For frameworks/libraries, you have AngularJS, Angular, React, and JQuery. AngularJS and Jquery are dying, as you can see in the charts, but they are still all over the place, meaning that you can still get a job with those skills. For process tools you have Grunt, Gulp, Rollup, and Webpack. And for your development environment, you have Node. From this smaller pool, it is much easier to decide where to spend your time.
Once you’ve really learned a tool set, it gives you a solid interpretive ground from which to look at future tools. This will allow you to more quickly and easily assess their qualities and determine if they are worth learning or integrating into your own workflow. It also means that, when given the opportunity to choose which tools to use for a project, you can analyze all of the newest libraries and frameworks with an eye toward using them in a production environment. This last scenario is really the only situation in which you might find yourself where you need to analyze everything out there.
Although even there, you’d be better off making decisions based on how easy the tools are to learn and how easy it will be to fill job requirements. Is Aurelia better than React? Who cares! There are way more React developers than Aurelia developers.
So where was I going with this? Oh right. Make decisions based on practical considerations. Don’t worry about the particulars of the tools
For developers to stay competitive in the quickly changing world of technology, they must stay up to date. The following are some practical methods for keeping up with the most recent frameworks, languages, and tools:
- Constant Learning: Schedule frequent time to pick up new technological skills. Resources like as YouTube, blogs, documentation, and free online platforms like Pluralsight, Udemy, and Coursera are priceless.
- Adhere to Sector Pioneers: Observe prominent individuals on social media and subscribe to their podcasts, YouTube channels, and blogs. You can find professionals on Twitter, Lin
For developers to stay competitive in the quickly changing world of technology, they must stay up to date. The following are some practical methods for keeping up with the most recent frameworks, languages, and tools:
- Constant Learning: Schedule frequent time to pick up new technological skills. Resources like as YouTube, blogs, documentation, and free online platforms like Pluralsight, Udemy, and Coursera are priceless.
- Adhere to Sector Pioneers: Observe prominent individuals on social media and subscribe to their podcasts, YouTube channels, and blogs. You can find professionals on Twitter, LinkedIn, and in specialist forums like Stack Overflow, Reddit communities, and GitHub conversations.
- Attend gatherings and conferences: Take part in local meetings, conferences, and workshops in your industry. These gatherings provide professional networking opportunities as well as insights on new trends.
- Make Use of Newsletters and RSS Feeds: To get regular information on the newest tools, languages, and frameworks, subscribe to newsletters, RSS feeds, and websites pertinent to your sector. Popular technology is frequently covered by websites like TechCrunch, Hacker News, and GitHub.
- Take Part in Open Source Initiatives: Participate in open-source projects on websites such as GitHub. Through this practical experience, you may comprehend emerging technologies in real-world applications, collaborate with developers worldwide, and learn from the code written by others.
- Try New Things and Create Independent Projects: Develop your projects with new languages and technologies. Practical experience frequently imparts knowledge more efficiently than academic knowledge.
- Participate in Online Communities: Participate in online discussion boards, forums, and community platforms such as Slack channels, Discord, and interest-specific forums. Engage in dialogue, pose inquiries, and impart expertise.
- Read Books and Documentation: Books may offer comprehensive information, and official documentation is a great way to comprehend the subtleties of new frameworks and tools.
- Consider Enrolling in Certification classes: Technology companies often offer certification classes. These credentials attest to your proficiency with a certain technology.
- Observe Emerging Trends in Technology: Utilize whitepapers, projections, and reports from reputable technology companies and research firms to stay abreast of technical trends. Recognize the direction the industry is moving so you can modify your learning appropriately.
- Take Part in Ongoing Projects: Work on a variety of projects that call for various languages and tools. This keeps you flexible to changing technological environments and broadens your skill set.
Recall that learning is only as important as consistent application and practice. You can maintain your competitiveness in the ever changing tech sector by being flexible, keeping an open mind, and always improving your abilities.
I wrote a post somewhat related to this a few months back, Learn Web Development, First (fun fact: this post brought me to Udacity's attention).
Initially, you should ignore frameworks and server-side languages all together. Get a firm grasp of HTML, CSS and JavaScript first - and I mean plain old everyday JavaScript, not jQuery. You're free to continue once you have a solid grasp, a true/deep-down understanding (not "oh yeah, I did that once" - you should be able to answer interview questions) of the following concepts (this isn't an exhaustive list of everything, this list just contains the m
I wrote a post somewhat related to this a few months back, Learn Web Development, First (fun fact: this post brought me to Udacity's attention).
Initially, you should ignore frameworks and server-side languages all together. Get a firm grasp of HTML, CSS and JavaScript first - and I mean plain old everyday JavaScript, not jQuery. You're free to continue once you have a solid grasp, a true/deep-down understanding (not "oh yeah, I did that once" - you should be able to answer interview questions) of the following concepts (this isn't an exhaustive list of everything, this list just contains the most advanced topic I believe someone should understand at entry-level):
- HTML: The 'new' HTML5 elements, their semantic purpose and how/why they map to ARIA roles.
- CSS: Transforms, animations, box model and positioning
- JavaScript: Hoistnig, Scoping, Closures, The Prototypical Inheritance model, Object Oriented Programming, various Design Patterns (mixins, facades, modules, etc)
At this point you have a decent amount of knowledge, hopefully a number of projects in your portfolio, you could actually land an entry-level Front End Developer position at this point. This is also the point in which the Web Developer paths diverge!
Front-End Web Developer: Continue learning JavaScript, learn to embrace its nuances and quirks, practice using jQuery (don't spend too much time here, it's insanely simple), now start experimenting with other frameworks Backbone, Ember, Angular as well as unit testing. Write lots of applications (for the web, phone, packaged browser apps, anything), deploy, and iteratively refine those applications.
Back-End Developer: Back-End Devs really don't need to go into as much JavaScript or CSS as I prescribe in the first section, but I'm assuming a minimal amount of programming experience of decently large projects; for that reason JavaScript served as a useful Intro to Programming (plus, in the learning phase you don't have a Front-End Dev to build interfaces for you and you need some projects to show off). There are tons of server-side languages and everyone you ask will give you a different answer with different reasons (I'm going to do that as well), ultimately - in the 10-20yr "this is your career" long-term - it doesn't matter what you pick right now. You just need to learn something, so pick something and learn it. Programming is programming, languages are little more than a new syntax.
Now, my recommendation: Python. It's an excellent language that is easy to read/write, very powerful, and (should this whole Web Dev plan not work out for you) also has great utility within other IT fields (System Admin, Data Science, even at times in your basic Help Desk position). Python will also teach you excellent OOP concepts.
Other options: PHP (available everywhere, easy to get started in and get something running, won't reinforce key programming concepts that are valuable to your learning experience at this time), Ruby (I could almost copy the Python reasons here except that Ruby's not used much in the System Admin world and it can be a bitch to install on Windows if that's your world), NodeJS (the new hotness, JavaScript on the server; I personally love it but its asynchronous nature may prove confusing at this early stage in your education).
As a back-end developer your goal is to respond to requests, query data stores and return data or full-blown HTML pages. So, you're going to also need to spend some time with MySQL/MariaDB (relational databases, data normalization, indexing, MyISAM vs InnoDB) as well as MongoDB (document-object datastore, denormalized).
Oh yeah, and Git. If it's not in a repository it doesn't exist/count.
I am not an expert in web pages so let’s start with that. I wanted to start a business of making software for businesses. I started with (non-web based) WPF (Windows Presentation Foundation) and MS SQL Server as some of my base technologies. (I had just left Microsoft ((as a contractor)) at that time). After 3 months and making great programming progress, I thought I should look into the business side of things. It turned out that my competition was between $30 to $1500 as a completed package. I would have to charge my customers over $3000 for all the Microsoft technologies needed before even
I am not an expert in web pages so let’s start with that. I wanted to start a business of making software for businesses. I started with (non-web based) WPF (Windows Presentation Foundation) and MS SQL Server as some of my base technologies. (I had just left Microsoft ((as a contractor)) at that time). After 3 months and making great programming progress, I thought I should look into the business side of things. It turned out that my competition was between $30 to $1500 as a completed package. I would have to charge my customers over $3000 for all the Microsoft technologies needed before even including my stuff. Obviously a failed business plan, and I stopped all coding.
I started looking at Linux based open source systems as a starting point. I decided that it would have to be cross-platform, and hence it also made sense to make it a web project. I knew very little about current web technologies, so I just started looking at Facebook, they are a huge web-based company. They used PHP as a starting point and created new technologies to make serving pages faster. I said to myself, if PHP is good enough for Facebook, it is good enough for me.
Also, all the web hosting sites provide Linux hosting cheaper than Microsoft hosting. So I decided to go with the common LAMP system. Linux, Apache Web server, MariaDB (replacement for MySQL), and PHP.
I also looked at the deployment target. I like Chrome and found over the years that Microsoft would change IE to make many websites break over time, so I was not even going to attempt to make it compatible with IE. Chromes market is big enough for me so if I lost IE customers I simply didn’t care. I also wanted to be able to use my website on a cell phone under slow connection speeds. I decided that Bootstrap provided a great foundation (created for Twitter and provided to the world) for providing for multiple screen sizes and takes away a lot of compatibility problems.
So on top of the listed technologies, you can pick any variety of JavaScript and JQuery frameworks, plus Ajax to round out the stack to do the client side validation and processing, but remember that client-side code cannot be trusted.
So I started my website, and even though the business model failed, and many people don’t like my website enough to use it. I do feel that the technology background was a stable way to build a top-notch website. Since the time I have started my website, every part of the LAMP stack has been improved, and Chrome and Bootstrap have also been improved. If I was to do it all over, I would still use the same stack. The only downside is that it doesn’t give you experience for all the Microsoft jobs in my area.
In the ever-evolving world of software development, staying ahead of the curve isn't a luxury, it's a necessity. But with the constant barrage of new tools, frameworks, and best practices, it can feel like an impossible task. Fear not, fellow coder! Here are some battle-tested strategies to keep your tech stack sharp and your skills relevant:
1. Become a Knowledge Sponge:
- Feast on Blogs and Newsletters: Subscribe to well-respected blogs and newsletters in your areas of interest. Sites like InfoQ, Hacker News, and DEV Community are goldmines for in-depth articles, breaking news, and expert opinio
In the ever-evolving world of software development, staying ahead of the curve isn't a luxury, it's a necessity. But with the constant barrage of new tools, frameworks, and best practices, it can feel like an impossible task. Fear not, fellow coder! Here are some battle-tested strategies to keep your tech stack sharp and your skills relevant:
1. Become a Knowledge Sponge:
- Feast on Blogs and Newsletters: Subscribe to well-respected blogs and newsletters in your areas of interest. Sites like InfoQ, Hacker News, and DEV Community are goldmines for in-depth articles, breaking news, and expert opinions.
- Dive into Documentation: Don't underestimate the power of official documentation. It's often the most accurate and comprehensive source of information for new tools and frameworks.
- Follow the Influencers: Identify thought leaders in your domain and follow their social media channels, blogs, and talks. They'll often share insights and early access to emerging trends.
2. Embrace Continuous Learning:
- Online Courses and Tutorials: Platforms like Coursera, Udemy, and EdX offer a plethora of courses on the latest technologies. Choose interactive courses with practical exercises to solidify your understanding.
- Books and eBooks: While online resources are great for quick updates, delve deeper with well-written books for a comprehensive understanding of core concepts and best practices.
- Contribute to Open Source: Working on open-source projects exposes you to different coding styles, problem-solving approaches, and the latest tools in action.
3. Engage with the Community:
- Join Online Forums and Communities: Participate in discussions on forums like Stack Overflow and Reddit to learn from the experiences of other developers and get help with specific challenges.
- Attend Meetups and Conferences: Immerse yourself in the tech scene by attending local meetups and conferences. Network with peers, listen to expert talks, and get hands-on with new technologies.
4. Experiment and Play:
- Personal Projects: Dedicate time to personal projects that allow you to experiment with new tools and frameworks in a low-pressure environment.
- Hackathons: Challenge yourself and learn new things by participating in hackathons. The fast-paced environment and collaborative spirit can be incredibly stimulating.
5. Remember, It's a Journey, Not a Destination:
Staying updated is an ongoing process, not a one-time achievement. Embrace the learning journey, be curious, and don't be afraid to make mistakes. The key is to be consistent in your efforts and enjoy the process of expanding your knowledge and skills.
Bonus Tip: Prioritize! It's impossible to learn everything. Focus on areas relevant to your current projects or career goals to avoid feeling overwhelmed.
By following these strategies, you'll be well on your way to becoming a lifelong learner and a master of your craft. Now, go forth and code with confidence!
Data Engineer and polyglot here… (Python, SQL, Java, R etc..)
TL;DR. Learn Python and SQL and you’re set.
I’ve done web development and SQL database development. Learn Python and SQL and you could do either path or both and have a lucrative career no matter what. They are both relatively easy languages, relatively universal, and compliment each other well.
Also, SQL will never die. It is and will remain in demand likely for the rest of our careers. There was some talk a while back (and some opinionated devs will still try to claim) that SQL was/is to be replaced with various NoSQL solutions, but
Data Engineer and polyglot here… (Python, SQL, Java, R etc..)
TL;DR. Learn Python and SQL and you’re set.
I’ve done web development and SQL database development. Learn Python and SQL and you could do either path or both and have a lucrative career no matter what. They are both relatively easy languages, relatively universal, and compliment each other well.
Also, SQL will never die. It is and will remain in demand likely for the rest of our careers. There was some talk a while back (and some opinionated devs will still try to claim) that SQL was/is to be replaced with various NoSQL solutions, but this couldn’t be farther from the truth. What came of this was that vast majority of popular NoSQL features were integrated with and implemented in SQL db’s (JSONB in PostgreSQL, NoSQL connector for MySQL 8, and JSON functions for all the popular SQL db’s). SQL itself is actually making quite the rebound after that brief movement and most popular NoSQL or Big Data solutions now have retroactively implemented a SQL-like interface by popular demand. For example, there’s Hive SQL for Hadoop, KSQL for Kafka, Spark SQL for Apache Spark, and U-SQL for Azure to name a few.
Truly there is a world of lucrative career paths out there for you with SQL as the primary language. You can definitely get a SQL only dev job and be sitting pretty.
That being said, the data industry is expanding. The roles and toolsets are evolving quickly. LEARN PYTHON. Its the number one growing programming language, the second highest paying (after Ruby), the top language in the data industry (other than SQL), and it’s so flexible and widely used that you could easily change you your career from database dev to web developer or anything else you want and still leverage your Python knowledge.
As a software developer, I don't like being polyglot when working on a production project, I prefer using the same programming language for the whole stack. Is my approach good?
Um I'll put it as nicely as I can, your approach sucks. The one really, really, really big problem is preferring the same language for the whole stack is simply highly unrealistic, if not impossible for a vast majority of the projects out there. In my experience, developers never had the luxury of deciding what the whole stack consisted of, they either fit with the stack or they didn't work.
I've never been a "full stack
As a software developer, I don't like being polyglot when working on a production project, I prefer using the same programming language for the whole stack. Is my approach good?
Um I'll put it as nicely as I can, your approach sucks. The one really, really, really big problem is preferring the same language for the whole stack is simply highly unrealistic, if not impossible for a vast majority of the projects out there. In my experience, developers never had the luxury of deciding what the whole stack consisted of, they either fit with the stack or they didn't work.
I've never been a "full stack" developer instead I always had a single core language that I knew really well. Through my career:
I was a C developer
Ugh, I had to code in assembly too
Then I was a C++ developer
Still had to code in assembly, but now needed to code in PL/SQL too
Then I was a Java developer
Yeah no more assembly! Still needed to know PL/SQL though, not to mention HTML and CSS as well, but I drew the line at Javascript!
While I had a core language that I did most of my work in, I still needed to know other things as well. Also I was in software development for 25 years and over that time things changed quite a bit. When I first started out, C was THE language to know - that's where the jobs were. Today however, not so much. Today Java is (arguably) where the jobs are and, in my opinion, not a bad choice as a core language. Before I retired, I knew quite a few developers who knew Java and only Java and there was no shortage of work for them, but what will the situation be in 25 years?
Your desire to choose a language based on customer needs is a double-edged sword.
Clients don’t tend to want to pay for your “learning time” - they’ll expect you to be able to hit the ground running and deliver results. That means that you should know the language/framework you’re working with before you begin, unless it’s clear to the client that they’re paying for an experiment.
Speaking as someone who has dabbled with almost every language going over the course of my career, I can say with confidence that you need to start by choosing one - maybe two - as your base. Once you’re comfortable wi
Your desire to choose a language based on customer needs is a double-edged sword.
Clients don’t tend to want to pay for your “learning time” - they’ll expect you to be able to hit the ground running and deliver results. That means that you should know the language/framework you’re working with before you begin, unless it’s clear to the client that they’re paying for an experiment.
Speaking as someone who has dabbled with almost every language going over the course of my career, I can say with confidence that you need to start by choosing one - maybe two - as your base. Once you’re comfortable with those, you can branch out, but you’ll never be as competent with 15 or 20 different languages as you can be if you select just a few.
For myself, that’s PHP and Ruby, with a smattering of Go, Elixir, Rust and JavaScript. Even in the languages I know well, I’d have to research frameworks - my experience historically has been in Symfony, if I was asked to use Laravel I’d have to read up on it.
Things move very gradually.
This is probably the exact opposite of what we hear, what we see, what common knowledge tells us, but it’s absolutely true, and it’s why people don’t actually just become dinosaurs in two years.
One way to look at this field is to see the last 25 years, and wow, the internet popularized, smartphones became a thing, shrink-wrapped software vanished and it’s all cloud, and DLC, and subscription, and total paradigm shift!
AWS is just 18 years old, and Azure is just 10 years old. Honorable mention to Google Cloud Platform at 12 years old.
Between them, they run, give or tak
Things move very gradually.
This is probably the exact opposite of what we hear, what we see, what common knowledge tells us, but it’s absolutely true, and it’s why people don’t actually just become dinosaurs in two years.
One way to look at this field is to see the last 25 years, and wow, the internet popularized, smartphones became a thing, shrink-wrapped software vanished and it’s all cloud, and DLC, and subscription, and total paradigm shift!
AWS is just 18 years old, and Azure is just 10 years old. Honorable mention to Google Cloud Platform at 12 years old.
Between them, they run, give or take… the world? Roughly, ya know.
That’s all true. But it’s still quite a long time, and many of the fundamentals behind this technology haven’t changed all that much.
The Hash Table was created in 1953.
When I looked this up to make my big cool point, even I was floored. Seriously!? 1953!?
Tony Hoare is 86 at time of writing this, Edsger Dijkstra (RIP) would’ve been 90, Liskov is 80, Turing and Hopper were born shortly after the turn of the century (I mean the 1900 one.) The list goes on.
The work that they did is still very much alive today. At one of my jobs, a very senior Android engineer was hired, in large part, for his expertise with finite state machines, a concept which Edward Moore introduced in 1956.
All the way to the rapid, not so rapid changes.
I remember learning all about REST. It was a pretty neat concept when I first read about it, and I could see why it was getting traction. The idea of separating logic and just getting the documents that we needed or telling it to store something we wanted held, very stripped down, good stuff.
I also saw it used more with json than the XML/SAX parsing that I was used to, and even though I was an Android dev, parsing json into POJOs made a whole lot more sense to me. It was just easier and cleaner.
That was 2014!
REST was introduced 14 years before I was idly flicking through Fielding’s dissertation and seeing how different places were interpreting it on the scale of theoretic to pragmatic.
OAuth was already years old at this point too, and yet it would be years still before these standards were really solidified across SAAS companies.
That’s not to say there weren’t much earlier adopters, but as of 2020, if you’re delivering software as a service, you’re very likely using a REST API (or maybe graph), using OAuth, using json content types, all of that is fairly standard issue now. (Of course there are exceptions, I’m talking about the vast majority, not all.)
Learn a little bit each day/week/month.
That’s really what it comes down to. If you’re an Android developer now, it’s Kotlin, and 5 years ago, it was Java. Building UIs is ConstraintLayout, and 5 years ago it was Relative/Linear/Frame/WhateverLayout. But it wasn’t over night.
And that’s kind of how this tends to go with most technologies, something like, “okay, this language is clearly taking over, so let’s build our new code in Kotlin, and if we make significant changes to a Java file, convert it. No need to tear down 200,000 lines of Java code tomorrow though.”
They’re often fairly small topics.
Back to REST, I learned the basics in about an hour, and after a week or two I was fairly comfortable. It was different, but not super strange, it made sense.
Picking up Kotlin took a couple months, but as a team we could point out shorthand stuff, “just use an Elvis operator here” or “this is a great place for a Sealed class,” etc.
Often, it’ll be a team having someone do a little research to implement a new feature, and that dev will come back and give the tl;dr to the team about how a specific feature of a language or framework is used, etc.
The point here is that it isn’t interruptive. I get the Android Weekly news letter, I watch the Google I/O videos, I keep up here and there with interesting secondary and tertiary technologies, and that’s enough to keep me current. The really big building blocks don’t tend to just totally change. It’s a little piece here and there.
I usually wait long enough for fads to pass. This strategy avoided learning PHP, perl, forth, Hungarian notation, etc. I'm hopeful that Python will age out in a decade or two.
Learn what counts. There are so many fads we follow that simply waste time. I try to think critically about having a valid specific concrete reason for making a move, my more eager coworkers don't see that yea...
In the last two years I had this happen twice already. I even chose the language once. I firmly believe to always choose the best tool for the job. I think any good programmer understands logic and conditional structures and algorithms to the point that translating them into most other languages and frameworks shouldn’t be a problem.
Your progress the first week or two would be painfully slow as you learn the nuances of the language and the framework and then it will pick up after that. By the first month you’ll be at a good pace and on target to finish the project in time. Assuming that 2 mont
In the last two years I had this happen twice already. I even chose the language once. I firmly believe to always choose the best tool for the job. I think any good programmer understands logic and conditional structures and algorithms to the point that translating them into most other languages and frameworks shouldn’t be a problem.
Your progress the first week or two would be painfully slow as you learn the nuances of the language and the framework and then it will pick up after that. By the first month you’ll be at a good pace and on target to finish the project in time. Assuming that 2 months was an accurate estimate for the project in the first place.
When estimating time for projects in languages you don’t know make sure to add on like 2 weeks for a senior programmer to get up to speed and 1–2 months for a junior.
There are a lot of great answers here, but I want to add one comment that you should be aware of...
Learning a programming language is fairly easy. It only seems difficult to newbies because they are trying to learn a programming language at the same time as they are learning how to program. The latter topic is far more difficult. Once you understand the concepts and have a grip on "what you need to do to solve such problems," the language is no longer a big deal.
Moreover, experienced programmers do not try to memorize all of the API’s. That’s what Stackoverflow and Google are for.
I think this question should be broken in two:
How do web developers keep up with all the latest JavaScript libraries and frameworks?
And
How do web developers keep up with JavaScript best practices?
They have different answers as frameworks and libraries change a lot but best practices are reasonably stable. Although there have been a few changes in that space in the last few years as well.
How do web developers keep up with all the latest JavaScript libraries and frameworks?
This really depends on how you define 'keep up'. Most web developers aim for awareness over expertise in new frameworks and
I think this question should be broken in two:
How do web developers keep up with all the latest JavaScript libraries and frameworks?
And
How do web developers keep up with JavaScript best practices?
They have different answers as frameworks and libraries change a lot but best practices are reasonably stable. Although there have been a few changes in that space in the last few years as well.
How do web developers keep up with all the latest JavaScript libraries and frameworks?
This really depends on how you define 'keep up'. Most web developers aim for awareness over expertise in new frameworks and libraries. You want to know whats out there to help you solve particular problems.
My strategy:
- I read a lot
- Find leaders in the industry and follow them on Twitter, Medium & even Quora.
- when i find something that interests me particularly i usually spend some time to try understand it properly by seeking out a tutorial or some example code on github.
- Use different frameworks in my personal projects to what i use at work. This allows me to have a reasonable understanding of at least two frameworks at one time. Its meant that over the last 12 months i've used Angular 1 & 2, React and Ember in various projects. Not to mention Nodejs, Express, Strongloop and others.
How do web developers keep up with JavaScript best practices?
Best practices tend to be more stable but there have been a few changes more recently, particularly around asynchronous programming.
It wasn't long ago that callbacks was standard, and then came promises and now observables.
Now that i think about it I use much of the same strategies to keep up with best practices but i'm more selective as to who i pay attention to around best practices.
Finally...
Something thats important to me is that i'm very pragmatic around libraries, frameworks and best practices. I tend to work in teams and a shared understanding of our approach is more important then using the latest and greatest. I want to build great websites and having a great team will help this happen more then individual framework or library.