There are nine units in Lambda School’s Full Stack Web Development Pre-course. I’m going to summarize what the pre-course covers for each of them. This material is basically ground-floor information that students need to know before they start the full course.

Learn how web development fits into the Greater Software Hierarchy
The second lesson asks the following questions:
- What is meant by the term front end?
- What is meant by the term back end?
- What is a framework?
- What are unique challenges web developers face?
What is meant by the term front end?
Front End is essentially the user interface on a web application, and probably applies to client-server applications in a similar manner. Its what we, as users, see onscreen when we access and interact with a web application or web page. Its sent to our browsers from an application’s server and is run locally on our computers, with results being sent back to the server for processing. Its also called the “client”. At work, I’ve heard it referred to as “client-side” as well.
The main languages that are used in front end development are HTML, CSS and JavaScript. As per the text:
- HTML allows us to put content on our page: text, headers, images, buttons, links, and etc.
- CSS is used to style our page. It allows the contents to have different text colors, background colors, as well as dealing with the positioning of the content on the page.
- JavaScript makes our page dynamic. It allows for the content to change on a mouse hover or click and also lets us submit data and have data rendered on our page (such as submitting a new blog post or having your feed populated when you open Facebook).
So HTML and CSS give us something to look at, and JavaScript adds interactivity and functionality to a web page.
Front end work is essentially what I’ve been doing at my current company, although I wasn’t specifically trained for this position. Our developers wanted to code, not design. I worked a lot with our company’s founder, who drafted our interface on paper, long before I joined. I initially helped revise modules in our software, and later designed small pieces myself. Finally, when she was unable to do a lot of design work for herself due to illness, I stepped up and took over that role, relying on her knowledge and logic to guide me at first, and over time growing to rely more on my own, as well as federal and state regulation manuals and updates, and other industry standards. I joined Lambda School partly to learn front end coding so I could get better at this, or at least have an understanding of what was going on under the hood.
My typical approach to front end work was initially to use Microsoft’s Front Page to design pages for our web application. After a while, I moved on to Expression Web – because Front Page was retired by Microsoft. As time progressed, I began to work with both Expression Web and Visual Studio. I did most of my design work using Expression Web, and later began placing variables into fields in the interfaces that I designed, to cut down on some of the work that our developers had to do. In truth, they were probably throwing me a bone, to let me work more with them, as I’m sure they could have done what I was doing much more quickly that I did.
I used applications for interface design. By the end of this course, I hope to be able to understand the code behind all of it, and also be able to modify it by hand, and even write some of it from scratch, myself. Even now, I understand a little about how my lack of knowledge hindered my team – for example, since I don’t know CSS, I didn’t understand how to create a file with styling information that could be applied to multiple pages in our application – so all of the pages that I designed have information in them that affects colors of page elements, table formatting information, and other things that I could have centralized, to make the pages all smaller as well as to control from a single location, so updates could be applied globally with ease, instead of manually updating dozens of screens. There’s probably more that I could have done better that I still don’t know about.
What is meant by the term back end?
The Back End is where all of the server functions happen in a web application. This includes data processing – especially code that’s proprietary and hidden from the front end – saving and updating databases, and even communicating with other servers or applications. We don’t typically see or have access to the back end. Its essentially the server(s) or virtual server(s) that a web page or application runs from. When users send input from the front end to an application, it typically is received by the back end, processed, and an action is taken – like saving data into a database or computing an answer and then updating the front end so it can display new information.
JavaScript can be used to create both front end and back end code. Other languages can also be used. Our company used C++ and Visual Basic for parts of its back end. Initially, it used Powerbuilder. Other common languages include Python, Java and Ruby. If a database is in use, it is also controlled in the back end using a database programming language, like SQL or Oracle (or, as the text states, MongoDB). Our company used Microsoft SQL.
As per the Lambda School text:
We will not be covering any back end within web dev 101, but the JavaScript skills we are developing are core building blocks to writing a JavaScript backend server. Back end development (including servers and databases) is covered extensively in the full course.
What is a framework?
Frameworks are extensions to programming languages. They add functionality to an existing language and can alter the syntax of a language. I don’t have any real knowledge of frameworks, but I know that the full Lambda course covers Bootstrap and React.
- Bootstrap: Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS- and JavaScript-based design templates for typography, forms, buttons, navigation and other interface components. (Wikipedia)
- React: React is a JavaScript library for building user interfaces. It is maintained by Facebook and a community of individual developers and companies. React can be used as a base in the development of single-page or mobile applications, as it is optimal for fetching rapidly changing data that needs to be recorded. (Wikipedia)
What are unique challenges web developers face?
Working in any industry has its pros and cons, and software development is no exception. The Lambda text goes over three technical challenges that web developers have to contend with: load times, different browsers and accessibility.
- Load times: Websites that take a long time to load frustrate users and can cause them to leave. Most users will leave a site that doesn’t load within 15 seconds. This can definitely affect business websites negatively, as well as other online applications – like those which collect important information, like medical or financial data. One alleviation is to learn methods to keep users engaged while a web page is downloaded, and to keep code lean so it downloads quickly (hence my CSS regret, earlier in the page).
- Different browsers: This is something we had to deal with at work, as well. Basically, different browsers interpret HTML in their own way. For example Internet Explorer and Chrome don’t always display pages in the same manner. Even Microsoft Edge can vary with Chrome in its page rendering. Mobile browsers are very different from those on laptops and desktops, and older browsers might not even support certain technologies that have become prevalent on the web. The text states that we will need to make sacrifices and not support some browsers – a decision often made by a marketing department. At work, we did just this by specifying what browsers our application supported and what version for each browser was the baseline. This had to do with support for a particular version of HTML as well as support for certain encryption technologies for security purposes.
- Accessibility: This has to do with people who interact with computers and the internet via special devices or technologies like screen readers, devices for colorblind or hearing impaired people, or those with other visual impairments, and those who use specialized keyboards and other devices to operate their computers. We need to consider how to enable them to use our software, not only for their own needs, but also to meet legal requirements for accessibility.
While the Lambda text goes over some technical challenges to web development, there are others that I’ve encountered at work. These are mainly related to meeting a client’s wants. There are many times in which clients don’t understand the scope of what software can or should do. All tasks appear “easy” to implement because, as the adage goes, “Nothing is impossible if you tell someone else to do it.”
I’ve worked with clients who had unrealistic expectations, which I’ve had to tamp down on. Generally, this has been successful. There are personalities, however, which simply don’t like computers or are obstructionist or even are working against a company because they favor another one. So-called “soft skills” are potentially a challenge for developers. They might not be meeting with end clients, although independent contractors certainly will, but even so, the ability to explain what can be accomplished in a certain time frame, or within a particular budget is invaluable to have when dealing with management as well as with clients.
Prioritizing tasks is another concern. I’ve personally had entirely different feature roadmaps planned out than what our marketing team favored. Working with outside constraints, like changing government regulations is another challenge, especially when data has to conform to a revised format within a specific time frame. Dealing with the federal and various state governments for some of these updates can be a headache – are regulatory revisions finalized? Is all of the necessary information easily available? Is there a testing environment to which data can be submitted and a response can be gotten to confirm that revised code and data meets new requirements? Is there someone who can be reached (especially in a timely fashion) to provide guidance when needed?
Its been my experience that technical hurdles can be overcome by a competent technical team. Dealing with people adds outside neuroses to the process, and has to be very tightly controlled, both to keep clients happy and to keep developers sane.
One thought on “Lambda School Pre-Course 2: Learn how web development fits into the Greater Software Hierarchy”