Understanding Backend Vs. Frontend
So i been trying to understand the difference between backend and frontend programming and which languages do what so i know if i'm in the right one. here's what i've come up with. anyone who knows the full detail or have a video on it please let me know. Example: someone wants a flaming button displaying "click here" and once clicked opens up a new page showing (i dunno) 3 champs to choose in a game Frontend - This group would develop the visual effects, text, and colors that the eye can see, but once clicked, nothing really happens. (Java("only one i think may be front end so far")) Backend - This group one the other hand wouldn't do the above but instead, get things set up that once that button is clicked, it will then open up another section (The next page with the champs) .... (Python("Which i believe to be backend")) Am i even close to understanding this?
1/13/2019 1:18:32 AMKidale Smith
41 AnswersNew Answer
There are an abundance of threads of the same kind. It would be a great idea to search and refer to them before posting. https://www.sololearn.com/Discuss/1507711/?ref=app https://www.sololearn.com/Discuss/1424957/?ref=app https://www.sololearn.com/Discuss/866773/?ref=app https://www.sololearn.com/Discuss/1513173/?ref=app https://www.sololearn.com/Discuss/1413037/?ref=app https://www.sololearn.com/Discuss/692507/?ref=app
Think of it like you have a restaurant, the diner where people come to sit and eat is the front-end. Your kitchen, where you and your staff have the only access is the back-end.
Look it... It's really not a complicated concept... Frontend development involves the part of the application the user will interact with. This can be via the browser, mobile device, desktop app, IoT appliance, etc. Backend development typically involves everything else external to the frontend that may be directly or indirectly related to the same overall solution. This can be a RESTful API, remote logging service, single sign on auth service, any number of services and databases for that matter. These are often times a central access point for all frontend applications that may need to connect with the same database or with other frontend clients.
For the sake of discussion, I think that job descriptions & titles in general are very hand-wavey. Everything means something entirely different by the time you've been hired & completed your probation period. I am "blaming" (just to be dramatic) most of this confusion on companies that let non-technical reps write job descriptions or conduct interviews & make hiring decisions without a technical person with them. Keep in mind that this doesn't happen just in technical hiring -- it happens in all industries & can happen at whatever company to which a candidate is applying. General disclaimers aside, the web has changed a lot over the last 15 years. Things that were not things: - Facebook, YouTube, Twitter - Git, GitHub - AWS, Azure - Chrome, Android - jQuery, AngularJS, etc. WordPress just got going and Firefox & Safari were both relatively new. Myspace was still a contender. I don't know anybody who uses Flash Player anymore. Not to get too nostalgic, but the landscape was very different...
In answer to Tarun's concern, Server mostly PUSH information. It's when it needs to PULL info ( login, transactions, etc.) from Client-side that Server-side programming is required.
I see you have been leaning python... Check out the django framework. One look through a demo will give you a better understanding of frontend and backend. Django is nice because it does a great job at separating the two.
[...cfb] You can read a very high level overview here ( https://www.sololearn.com/learn/7896/?ref=app & https://www.sololearn.com/learn/10308/?ref=app ) but, as you can probably imagine, there are actually different protocols for packet delivery too. https://en.m.wikipedia.org/wiki/Internet_Protocol#Function So as a front end dev, if I program a function that makes a request to the server, I need to know from the back end dev what responses I can expect to get just as much as the back end dev needs to know from me what kinds of requests I anticipate the user will make so that the back end dev can figure out what to send back and how to prioritize/juggle requests. The back end folks figure out things like regional fail overs, sandboxing for builds, databases (as previously mentioned), etc. and can split up their roles as well (e.g. dev ops, ETL & database administration, etc.). [tbc...]
... In either case, I think that large companies vs small ones (like tech startups) and software companies vs non-software companies account for the biggest inconsistencies, followed by managerial approach. Some managers like to hire a bunch of full stack people like replaceable parts to be shepherded by scrum masters (or corporate Java heads for the non-web parallel, because that's what they learned in college and that's what they're comfortable with). Others like to separate duties and hire specialists. I feel like some people can start as a full stack dev or start as a specialist, but if they get tired of coding or prefer management, they might become a manager, or of they find out that they gravitate toward programming over dealing with managerial things, they might go the other direction and specialize (probably managers and specialists make more money, even if they could still be considered a full stack developer skills-wise). Just a generalized opinion. Alternative theories welcome.
I have heard back end and front end developing like this. in a web site we can see only the front end as a client ( user ). All the texts, colours. and all the visible things are written in front end developing languages. html css like that. but in a website the back end can't be seen for the users. it can be seen only for the developers who develop that site. Back end is written in back end developing language like php, JS.. etc. as your example: there is a function which is entering to an another site from a site clicking a button after filling our user name for that site and the password ( like logging in to facebook.. the easiest example : -) . ] In that procedure we can see only the blanks given there. and other texts and the colours in the website. but behind that there is a procedure of choosing correct account that user should be entered according to the username and the password given by the user. that procedure is written with the backend developing languages. It should be chosen that user name and the password are matching or not. and choosing the correct account. that is upto the back end language written by the back end developers. in a website only front end source codes can be seen for other people. only developers can see other codes.
What's conspicuously missing in this discussion is the concept of 'Client-Server Architecture' of the Internet. The front-end is the Client-side while back-end is the server-side. It's not just a matter of semantics. There are intervening technologies between both sides of the Client & Server. Understanding of the concept can help deepen your appreciation of the languages vis-a-vis the inter-relationships. https://www.techopedia.com/definition/438/clientserver-architecture
Thanks for the heads up. To my mind, it's important to start at the right place. All this discussion is driven by the platform. The architecture is the reason....
Like you said, ad nauseum... It's not up us... Let's just keep doing what we do best. Be creative! 💡
[...cfb] Together, they can champion providing a good UI and a pleasant UX. Front end and back end work together to make this happen. Graphic artists and marketing people (which sometimes includes SEO people) are often in charge of supplying the raw assets for web designers (images, logo, branding). Writers can produce copy and various blog articles (collectively know as content, which gives rise to terms like CMS). The back end devs roll in the database, how servers for different things talk to each other, and how the front end can interact with the APIs. They have a much wider choice in which languages they can use, whereas front end devs pretty much stick to the big 3 (HTML, CSS, JS). Both ends have their own tools and frameworks they can use. The "wire" (packet delivery through ISPs and routers, etc.) is what separates them. [tbc...]
[...cfb] If I were to make an abstract analogy, I would say that in a house, the back end is in charge of the supply lines, HVAC, etc. and the front end installs the toilets, sinks, shower surround, light switches, and basically everything studs-in. In short, for a large production, there's a lot to do and lots of ways to split up responsibilities. I hope this helps. 😊
Are these descriptions reflective of what people are experiencing today as professional developers? If so, it's quite different from what I've been involved in since, at least, 2005. It's moreso the case since agile methodology has become more mainstream over the past 6 or 7 years. The division of labor with frontend vs backend have been replaced with the fullstack developer, and in some cases, like myself, polyglot multi-platform, fullstack developers. I get the sense that this isn't the norm for many people based on these recurring questions and repeated responses.
Da2 , it's not missing. The links @Hatsy posted contain this info and I covered it again here. You may need to "TAP HERE TO LOAD MORE" to see these.
I think it's driven by the example because the example is the only thing that makes this question any different than all the other times this has been discussed ad nauseum (to my moderator mind), so in the end, I do think Hatsy's links should be marked as best (but that's not up to me). Why the industry insists on having less accurate equivalent terms for client-side and server-side is up for debate. (Maybe it's just to confuse outsiders.)