I’m self-taught with no degree. I’m considering enrolling in a local community college to get started with my associates. How else can I improve? Do I need more projects? Should I learn different tools? I’m located outside the Phoenix metro area and I cannot relocate but I would consider remote work.
The applications you’ve built aren’t styled - it’s kind of barebones with just bootstrap.
Are you looking for front end or back end work?
Definitely more back-end.
While applications you’ve built demonstrated some level of understanding how the backend works the majority of positions will require more knowledge.
Try building a CLI in Node.js to stream data using duplex streams or better yet learn Go for back end web development.
Back end web development typically involves Docker for containers and Go/RubyOnRails/Python Django/ASP.net etc for the API. Try building your app to run as a docker file for deployment.
Learning Go and Docker will set you up for success in Backend development.
I don’t know if I agree that back end development is mainly in Go. In term of sheer volume of jobs, Java, Asp.Net(C#) is probably still the market leader and will be for quite some time. It depends on the field.
On a similar note, NoSQL databases like Mongo.DB are popular for online courses because they are easy to set up and go, and the start-ups and tech companies may very well rely on them for the scalability. However, for reliability, most enterprises still heavily relies on relational databases, therefore the market for SQL as a skill still far outpaces any specific NoSQL databases.
However knowing virtualization and container technology is a major plus. Microservice architecture is an important concepts in a lot of companies that has large systems and containers like Docker are absolutely crucial.
To really catch some eyes, you also should demonstrate some understanding of design concepts like CQRS, Domain Driven Design, Event Sourcing…etc
Cloud native are also increasingly important, so it may serve you well to be AWS certified or Azure certified.
In short, Java and SQL probably expands your job market the most, but they might not necessarily be the jobs that interests you. You should indicate/demonstrate that you have some higher level conceptual knowledge of backend design. Familiarity with container and cloud platforms can also increase appeal.
I think what I meant to say is that the future of back end web development is in Go. The benchmarks are really fast. Yeah there will be legacy systems still built in Java etc but most companies if they care about speed are switching to Go.
Aside from the artifacts you’ve posted initially, can you tell me a bit more about what you’ve been doing from a process standpoint? (i.e. how many jobs have you applied to, what types of jobs, are you networking, have you contacted recruiters, how are you following up, are you asking for informational interviews with companies to build exposure, etc. etc.).
If you’ve applied to 5 places and didn’t hear anything back provides us with a very different situation than you’ve applied to 100 places, followed up and got rejected for xyz reasons.
Also, for what it’s worth, I will be in a similar situation soon when I apply. I do come from 10 years in an IT/ tech background, but do not have significant direct experience with coding. One might see this as a shortcoming, but I intend to spin it as my differentiator.
For example, we definitely need projects to demonstrate what level of competency we are at from a technical standpoint, but since I’ve worked as a systems analyst and solutions architect, I will be emphasizing the soft skills and business skills I’ve refined over my professional career. That combined with a technical foundation that I’ve also built largely self-taught is at the very least a way to stand out and hopefully get the opportunity to plead my case further in an interview, etc.
What do you have from your background that you can emphasize more in addition to your coding skills? Being able to code is table stakes. What can you offer that is different and valuable to the companies you are looking at?
I only say this because me and my mates works for very large enterprises that are not tech companies, and from our inside perspective, it’s nearly impossible to switch these companies’ back end to a different stack even if you put a timeline of 3-5 years. It would be asking companies to part with mature communities, large libraries of stable dependencies, existing tool chain like build tools, monitoring tools…Etc and retrain their workforce.
They don’t have the technical man power of a tech company to do such a major revamp. The effort has to be piecemeal and the fact is there are not enough budget directed to such a thing because the current stack works and is perfectly stable. They much rather put the technical man power into something new like a big data platform or machine learning and automation.
While as a developer I can see the technical merit of GO, I can also understand that it may not be enough incentive to change from a business perspective. These companies still hold a large share of the job market and will continue to do so for the foreseeable future (I work in telecom, my friend works in energy, these companies are in some way enabled to have near monopoly on their industry here in the US). There is a reason the Java has been the market leader in jobs in the past 10 year, and these companies are exactly why.
What you posit might be true in 5 to 10 year, but I don’t think it will be in the near future for most companies. The truth is with advent of microservice and serverless, backend development is becoming increasingly language agnostic, architectural design knowledge supercede coding knowledge even because the complexity becomes less so in code but more so in structure and interactions.
This has been my experience/ understanding as well - from a different perspective but also from having worked with many large and/ or global companies from the architecture planning standpoint.
I’m not saying Go is bad, just that it’s not some slam-dunk choice. It’s on my list of things that I want to learn, but that’s because I already do Node, but first I have to learn Java for work.
If I were advising a beginner, I might suggest Node, especially because it is part of FCC and it might be easier if you already know JS. Java is workhorse that just won’t stop. Ruby seems popular with startups. Python’s place as a teaching language means it will probably keep growing. I wouldn’t advise PHP unless you want to maintain legacy code or work with WordPress [turns his head and spits on the ground].
But ultimately, the more important thing is learning the backend. Once you understand that, the language choice is less important than you think. I had a friend who was a great C# developer. He got hired for a job and needed Ruby. He learned it in a week because he understood the fundamentals of what a server does so well and how computer languages work.
I’d say, don’t worry about finding the perfect language. Find a good language and learn it. Then find another good language and learn it. Maybe have one that is your “goto” that you learn deeply, but pick up a few more even if you don’t go into as much depth.
Not going to jack OP’s thread and reply directly about this when I replied to it already.
My advice to OP is if he wants a solid career in backend web development that Go is the way of the future. The speed of Go vs Java is not even close. All the companies that I was in contact with in my job search wanted Go.
Node is great too but is eclipsed by Go becuase streaming and the multi threadedness of Go is built in. The other posters recommended ASP.net and all that other junk from the 2000s … And yes I already said it has merit because of legacy systems but do you want to be developing legacy systems? Up to OP. You want the learn the future or you want to learn the past?
No those legacy systems aren’t necessarily going to be phased out but if you were building a system from scratch and could pick any back end technology / language, I would choose Go. The benchmarks aren’t even close.
Yes, Go handles cloud and streaming well. But you also don’t know what the future holds for existing languages or for what is around the corner. The history of predicting what the computer landscape will be in 5-10 years has and insanely poor track record. There is a large graveyard of fiercely confident predictions that the speaker was absolutely was 100% was infallible based on their own ideas of what was important to them and what was important to the market and assuming that all other languages would stop developing and based on their psychic abilities about what the landscape will look like in a decade. Even if Go were somehow objectively the best language in all cases (and that’s a big, screaming, flaming “if”), that does not mean that it will be the “next big thing”. History is full of superior technologies loosing out. I would suggest studying the cases or VHS/Bet and QWERTY/Dvorak as two prime examples.
But again, there is nothing wrong with Go. It’s on my list of possibles to learn. I agree that it probably has a great future ahead of it. But your statement that “Back end development is mainly in Go.” is objectively false and is insulting to the intelligence of the group. (I don’t know about you, but once someone lies to my face, I tend to not put much weight on anything else they say.) We get it, you really, really, really like Go. Good for you. I hope it serves you well. I will agree that it has a good future. But I take offense to you coming into a forum for learners, giving false information, and trying to convince them that your way is the only way. It is not.
Not going to respond to this when I already said my comment was taken out of context
Didn’t mean to insult anyone’s intelligence and thank you for your great contributions to this thread. Some of it I will report for taking things over the edge for really no reason.
There is nothing wrong with Kevin Smiths posts or his opposition to what he perceives as a fallacy. We don’t need people making bogus reports because someone got offended. This isn’t a safe space and I hope this community doesn’t pander to that way of thinking.
*Edit: To better explain what I mean by the safe space comment…
I meant that it’s a common trend especially in the younger generation to get offended/triggered and then try to quash there opposition just because they got there feelings hurt. I certainly am not condoning harassment or bullying.
Thank you for your defense.
I will say that FCC does try to be a “safe space” in that no person should ever feel threatened or harassed. But ideas are not safe. People are allowed their own opinions. And not everyone needs to have the same opinion as me and there are certainly topics where different opinions have merit. My issue (as you alluded) to is that the poster was making false statements and unfounded opinions and presenting them as objective facts - certainly a dangerous thing in a community with a bunch of learners.
If I got a little hostile, I apologize. But one thing that gets me going is when people lie to me. And another is when people claim that I’m taking them out of context when I’m clearly just repeating what they literally said more than once. I think that nowadays people say “out of context” as a way to avoid responsibility for what they’ve said, try to change the subject, and blame the other person for their misspeaking.
But if he feels I have violated the FCC CoC, he’s more than welcome to lodge a complaint and the other moderators can discuss it.
As for me, the sooner we forget about this and get back to coding and learning the better.
I think my point is, if the OP is looking for a way to break into software development and gain experience and I assume he needs it now or ASAP. There are much more opportunities in the “legacies” than the “future” currently, because simply there are more opportunities to maintain and upscale existing system than building something completely from the ground up.
It really isn’t about the technology being future proof or better, faster…etc. I’m coming from a purely statistical perspective that if the OP is a self-taught dev with limited experience and he is having trouble finding jobs right now with experience in a technology(Node.js) that already has a larger job pool than Go, he should be trying to expand into the larger job pool. I suggested Java because right now it literally has 10x more job opportunities than Node.js, and the OP probably wants a job now.
All roads leads to Rome as they say. We should all have an understanding than if we understand the underlying concept, implement the same in a different language would only require some effort. Most of the commonly applied concept are not lmited to any language.
OK, now the camper with whom I was debating had edited his posts to make me look incorrect - something I consider very bad forum etiquette bordering on lying and dishonesty, but OK.
This thread is turning into a flame war and now has little to do with the OP’s question. There are other places on the web to have “my language can beat up your language” flame wars. I’m shutting down this thread before this gets (more) out of hand.