Hacker News new | ask | show | jobs
by smartstakestime 2627 days ago
browsers + javascript + css (frontend opensource) ... to backend , many frameworks for each langauge, many languages all documented ... to persistence layer (mysql , postgres, mssql), and finally server but as OP said thats on amazon, Azure, Dreamhost ... etc

OP is discussing more so the practice of professional dev for 70 - 90% of the devs. Business guys want results , they dont care about scaling and so its about getting it out ASAP. Theres alot of politics, I was taken aback at first, with the idea of CS/software being very technical but it seems that this creates more of a differentiator for political manipulation, cause everyone is already skilled in analytics.

I could go into more detail but basically its all there and a search away (google). In fact there is a term in the industry called "google-fu" (like kung-fu) which means the number of searchers you need to perform to get an answer.

Its a double edge sword. All devs are on their own for learning, but all the info is out there, you just need to be willing to search and learn.

Sadly many people are not like that, and that seperates the good dev from the bad dev (besides the politics).

I assume its the same for being a surgeon, that all you have to do is study and learn the info and you can do it. But having a steady hand is very important. And sadly , if everyone had a steady hand , you'd still have the same amount of surgeons. Those who can do. You want to be a dev, open up the next tab and type into your tool bar "how to learn javascript". Realize that devs created this tool for you, and if you are not a dev its because you dont want to be. Its all there, the web is your oyster.

4 comments

> browsers + javascript + css (frontend opensource) ... to backend , many frameworks for each langauge, many languages all documented ... to persistence layer (mysql , postgres, mssql), and finally server but as OP said thats on amazon, Azure, Dreamhost ... etc

All of that requires a significant amount of engineering and coding to get working. Just using a frontend framework does not give you a working application, you still have to code that application.

> to backend , many frameworks for each langauge,

As somebody who develops storage systems, I'll bet that what you consider "back end" is still multiple layers "front" of where I sit.

> server but as OP said thats on amazon

You do realize that Amazon employs thousands of coders to create that platform, right? And "borrows" code written by even more thousands, from firmware and kernels up to databases and similar? I'm sure they're still far outnumbered by the front end glue-writers, but there are still enough to create a culture worth writing about.

I think you are describing the work of a junior software engineer. Sure a junior engineer can do "google-fu" and glue together a working application but there is so much more to being a software engineer than that. Here is just a sample of the kinds of things a more seasoned engineer has to consider when developing an application. Note that none of it can be solved by simply googling and glueing in another open source piece of kit. It requires careful consideration and knowledge/experience that lets you make these decisions.

Frontend:

- Should I use a frontend framework with backend API for a single-page application? or use a standard web site with no distinction between frontend/backend.

- How will I handle mobile responsiveness of the html/css?

- How will I server css & js assets? Use a CDN or host them locally?

- Will I minify css & js?

Backend:

- What business requirements will I take into account when choosing a language/framework?

- Is speed and concurrency a must (perhaps choose Golang)? Or rapid prototyping and complex business logic (perhaps Ruby on Rails or Django)?

- Will I write a monolithic application or go for microservices?

- How important is security? Will my framework prevent vulnerabilities like XSS and SQL injection automatically?

- What web server should I use? What kind of scaling requirements do we have?

- How will we handle version control? What processes need to be put in place around deployment?

- How do we handle deployment?

Database:

- Relation SQL database or NoSQL?

- Are there any cases where I will want to de-normalise my data right away or should I wait

- How can I design my schema to be flexible yet still scalable?

- What columns need to be indexed?

Hosting:

- Use a cloud host? (AWS, Google, Azure...)

- Do we need dockerized deployments?

- Should we use kubernetes or a more managed solution?

- How important is vendor lock-in?

- How do we handle config secrets (like API keys)

- How do we handle changes in configuration (i.e. use Chef/Ansible/Terraform etc.)

"all documented" ROTFL what world do you live-in