Why You Need a Front End Developer
Upcoming SlideShare
Loading in...5
×
 

Why You Need a Front End Developer

on

  • 3,562 views

Especially in small companies, you're often expected to be the end-to-end developer and handle everything from the database to the user interface. This was easy enough in the old days when the UI was ...

Especially in small companies, you're often expected to be the end-to-end developer and handle everything from the database to the user interface. This was easy enough in the old days when the UI was little more than a table-based-layout with some sliced graphics. But now with the latest technologies, the front end is becoming just as complex as the back end. In order to get the job done you need to rely more and more upon an ever growing, endless mountain of JavaScript libraries, plugins and boilerplates. Or maybe... you just need a front end developer.

Statistics

Views

Total Views
3,562
Views on SlideShare
3,180
Embed Views
382

Actions

Likes
4
Downloads
53
Comments
0

5 Embeds 382

http://clubajax.org 368
http://us-w1.rockmelt.com 9
http://www.slideshare.net 2
http://www.techgig.com 2
url_unknown 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Why You Need a Front End Developer Why You Need a Front End Developer Presentation Transcript

  • WHY YOU NEED A FRONT END DEVELOPERMike Wilcox - May 2011Tweets: @clubajaxBlogs: clubajax.org
  • Mike W ilcox
  • Mike W ilcox View slide
  • Mike W ilcox AJAX CSS3 AIR AS3 HTML5 PHP MySQL DojoFlash Video View slide
  • Mike W ilcox Co m mitter! AJAX CSS3 AIR AS3 HTML5 PHP MySQL DojoFlash Video
  • Mike W ilcox Co m mitter! AJAX CSS3 AIR AS3 HTML5 PHP MySQL DojoFlash Video Works there as Director of Technology.
  • Mike W ilcox Co m mitter! Natch! AJAX CSS3 AIR AS3 HTML5 PHP MySQL DojoFlash Video Works there as Director of Technology.
  • What is a Front End Developer?
  • What is a Front End Developer? FED
  • What is a Front End Developer? Markup Developer Client-Side Developer FED Frontender Web Designer Coder Htmler
  • What is a Front End Developer? Markup Developer Client-Side Developer FED Frontender Web Designer Coder Htmler A Relatively new term:
  • Front End Duties
  • Front End DutiesBrowser Compatibility Heuristics Programming DesignData Hierarchy Emerging TechnologiesMashups Accessibility APIs VSEO Proof Reader UI Design Copy WriterGraphical Design MultimediaSOA SEO Usability Performance Mobile Compatibility Web Standards Web 2.0 UX ProgrammingOptimization
  • Back End Duties
  • Back End Duties Optimizatio Backups Web Services n Replication DNS Load Balancing DB Design Business IndexinUnit g Testing Security Logic Version Control Data Transfers Automate Tasks QA Process Files Server Admin
  • End to End Developer Duties
  • End to End Developer Duties Optimizatio Backups Web Services n Replication DNS Load Balancing DB Design Business IndexinUnit g Testing Security Logic Version Control Data Transfers Automate Tasks QA Process Files Server Admin
  • End to End Developer Duties Optimizatio BackupsBrowser Compatibility WebData Hierarchy Services n Replication Heuristics Programming Design DNS Load Balancing Emerging TechnologiesMashups DB Design Accessibility IndexinUnit Testing UIBusiness Proof Reader Design APIs VSEO g Copy WriterGraphical Design Multimedia Security Logic Version Control Usability Performance SEO SOA Automate Tasks UX Data Transfers Mobile Compatibility QA Process Files Web Standards Web 2.0 Server Admin Programming Optimization
  • Discrete Developer Tasks
  • Discrete Developer TasksUI Design Front End Developer Information architecture Implementation of wireframes Mock-ups/Wireframes Technical style guide (ex: CSS) Creative style guides Communication to middle tier User sign-off Fill technical gaps found during Logos/Icons implementation with users Image licensing Middle Tier Developer Back End Developer Translation of front end to DB Translation of middle tier objects to structures DB objects (think View like business Workflow objects vs raw tables) User level object security CRUD operations against the DB Business logic validation Implementation of data integrity business rules Passing data to the back end tier DB minded security (SQL Injection “Front end” automation tasks attacks, etc)
  • The Problem
  • The Problem It’s human nature to get something “good enough to work”
  • The Problem It’s human nature to get something “good enough to work” Server guy should be hired first after the founders.
  • The Problem It’s human nature to get something “good enough to work” Server guy should be hired first after the founders. Then get a FED - not a second server guy.
  • The Problem It’s human nature to get something “good enough to work” Server guy should be hired first after the founders. Then get a FED - not a second server guy. Navy Seals / Cavalry
  • The Problem It’s human nature to get something “good enough to work” Server guy should be hired first after the founders. Then get a FED - not a second server guy. Navy Seals / Cavalry JavaScript is not easy
  • The Problem It’s human nature to get something “good enough to work” Server guy should be hired first after the founders. Then get a FED - not a second server guy. Navy Seals / Cavalry JavaScript is not easy CSS is not easy
  • The Problem It’s human nature to get something “good enough to work” Server guy should be hired first after the founders. Then get a FED - not a second server guy. Navy Seals / Cavalry JavaScript is not easy CSS is not easy HTML is not easy
  • The Problem It’s human nature to get something “good enough to work” Server guy should be hired first after the founders. Then get a FED - not a second server guy. Navy Seals / Cavalry JavaScript is not easy CSS is not easy HTML is not easy Okay, HTML is pretty easy, but there are some tricky things to know.
  • Success Story
  • THE ENVIRONMENT
  • Browsers
  • Browsers The world’s most hostile development environment
  • Browsers The world’s most hostile development environmenthttp://gs.statcounter.com/#browser_version-US-monthly-201005-201105
  • Browsers The world’s most hostile development environmenthttp://gs.statcounter.com/#browser_version-US-monthly-201005-201105 R.I.P IE6.0!!
  • Mobile
  • Mobile
  • Mobile The Easy Part:
  • Mobile The Easy Part: Its all about WebKit!
  • Mobile The Easy Part: Its all about WebKit! And Windows CE
  • Mobile The Easy Part: Its all about WebKit! And Windows CE - ha ha! Just kidding!
  • Mobile The Easy Part: Its all about WebKit! And Windows CE - ha ha! Just kidding! The Hard Part:
  • Mobile The Easy Part: Its all about WebKit! And Windows CE - ha ha! Just kidding! The Hard Part: Multi Touch Input
  • Mobile The Easy Part: Its all about WebKit! And Windows CE - ha ha! Just kidding! The Hard Part: Multi Touch Input Changes the rules for:
  • Mobile The Easy Part: Its all about WebKit! And Windows CE - ha ha! Just kidding! The Hard Part: Multi Touch Input Changes the rules for: Layout
  • Mobile The Easy Part: Its all about WebKit! And Windows CE - ha ha! Just kidding! The Hard Part: Multi Touch Input Changes the rules for: Layout Caching
  • Mobile The Easy Part: Its all about WebKit! And Windows CE - ha ha! Just kidding! The Hard Part: Multi Touch Input Changes the rules for: Layout Caching Bandwidth
  • Mobile The Easy Part: Its all about WebKit! And Windows CE - ha ha! Just kidding! The Hard Part: Multi Touch Input Changes the rules for: Layout Caching Bandwidth CPU
  • Mobile The Easy Part: Its all about WebKit! And Windows CE - ha ha! Just kidding! The Hard Part: Multi Touch Input Changes the rules for: Layout Caching Bandwidth CPU Memory
  • Flash
  • Flash
  • Flash or Flex?
  • Flash or Flex? HTML5?
  • Flash or Flex? HTML5? JavaFX?
  • Flash or Flex? HTML5? JavaFX?Silverlight?
  • Flash or Flex? HTML5? JavaFX?Silverlight? HA HA !
  • Flash or Flex? HTML5? JavaFX?Silverlight? HA HA ! Obviously JavaFX and Silverlight dictate their own uses.
  • Flash or Flex? HTML5? JavaFX?Silverlight? HA HA ! Obviously JavaFX and Silverlight dictate their own uses. Is Flash one size fits all? Is HTML5?
  • Flash or Flex? HTML5? JavaFX?Silverlight? HA HA ! Obviously JavaFX and Silverlight dictate their own uses. Is Flash one size fits all? Is HTML5? Flash != Flex and does not assume AS3 prowess
  • Flash or Flex? HTML5? JavaFX?Silverlight? HA HA ! Obviously JavaFX and Silverlight dictate their own uses. Is Flash one size fits all? Is HTML5? Flash != Flex and does not assume AS3 prowess HTML5 still lacks drawing tools for Canvas
  • DISCIPLINES
  • User Interface
  • User Interface
  • User Interface Usability
  • User Interface Usability Usability Tests have been replaced by repeatable patterns and best practices.
  • User Interface Usability Usability Tests have been replaced by repeatable patterns and best practices. UX (*not* usability)
  • User Interface Usability Usability Tests have been replaced by repeatable patterns and best practices. UX (*not* usability) Heuristics
  • User Interface Usability Usability Tests have been replaced by repeatable patterns and best practices. UX (*not* usability) Heuristics The user should determine the UI, not the data.
  • User Interface Usability Usability Tests have been replaced by repeatable patterns and best practices. UX (*not* usability) Heuristics The user should determine the UI, not the data. The interface may be difficult to use
  • User Interface Usability Usability Tests have been replaced by repeatable patterns and best practices. UX (*not* usability) Heuristics The user should determine the UI, not the data. The interface may be difficult to use The UI may be impossible to use
  • Accessibility
  • Accessibility
  • Accessibility HTML takes care of 80% of this automatically
  • Accessibility HTML takes care of 80% of this automatically WAI-ARIA for Ajax
  • Accessibility HTML takes care of 80% of this automatically WAI-ARIA for Ajax Web Accessibility Initiative for Accessible Rich Internet Applications http://en.wikipedia.org/wiki/WAI-ARIA
  • Accessibility HTML takes care of 80% of this automatically WAI-ARIA for Ajax Web Accessibility Initiative for Accessible Rich Internet Applications http://en.wikipedia.org/wiki/WAI-ARIA Flash a11y takes extra effort
  • Accessibility HTML takes care of 80% of this automatically WAI-ARIA for Ajax Web Accessibility Initiative for Accessible Rich Internet Applications http://en.wikipedia.org/wiki/WAI-ARIA Flash a11y takes extra effort Simple tests: Text Zoom & Contrast
  • Accessibility HTML takes care of 80% of this automatically WAI-ARIA for Ajax Web Accessibility Initiative for Accessible Rich Internet Applications http://en.wikipedia.org/wiki/WAI-ARIA Flash a11y takes extra effort Simple tests: Text Zoom & Contrast Better test: an actual screen reader
  • Front End QA
  • Front End QA
  • Front End QA Testing Ajax-heavy front ends is a relatively new task
  • Front End QA Testing Ajax-heavy front ends is a relatively new task Automation is difficult at best
  • Front End QA Testing Ajax-heavy front ends is a relatively new task Automation is difficult at best Tests need to happen in all browsers, and all supported versions
  • Front End QA Testing Ajax-heavy front ends is a relatively new task Automation is difficult at best Tests need to happen in all browsers, and all supported versions Some software solutions include:
  • Front End QA Testing Ajax-heavy front ends is a relatively new task Automation is difficult at best Tests need to happen in all browsers, and all supported versions Some software solutions include: Selenium
  • Front End QA Testing Ajax-heavy front ends is a relatively new task Automation is difficult at best Tests need to happen in all browsers, and all supported versions Some software solutions include: Selenium Dojo D.O.H.
  • Front End QA Testing Ajax-heavy front ends is a relatively new task Automation is difficult at best Tests need to happen in all browsers, and all supported versions Some software solutions include: Selenium Dojo D.O.H. Dojo Robot
  • Multimedia
  • Multimedia
  • Multimedia Video (sometimes just audio)
  • Multimedia Video (sometimes just audio) Encoding
  • Multimedia Video (sometimes just audio) Encoding Flash and HTML5 Players
  • Multimedia Video (sometimes just audio) Encoding Flash and HTML5 Players VSEO
  • Multimedia Video (sometimes just audio) Encoding Flash and HTML5 Players VSEO Push SEO
  • Design
  • Design http://blog.mycolorscreen.com/post/4576460465/why-gorgeous- user-interface-design-is-important
  • Design A poorly designed site may literally repel viewers http://blog.mycolorscreen.com/post/4576460465/why-gorgeous- user-interface-design-is-important
  • Design A poorly designed site may literally repel viewers A polished website exudes professionalism http://blog.mycolorscreen.com/post/4576460465/why-gorgeous- user-interface-design-is-important
  • Design A poorly designed site may literally repel viewers A polished website exudes professionalism Professionalism == $$$ http://blog.mycolorscreen.com/post/4576460465/why-gorgeous- user-interface-design-is-important
  • Design A poorly designed site may literally repel viewers A polished website exudes professionalism Professionalism == $$$ Mock-ups / Wireframes http://blog.mycolorscreen.com/post/4576460465/why-gorgeous- user-interface-design-is-important
  • Design A poorly designed site may literally repel viewers A polished website exudes professionalism Professionalism == $$$ Mock-ups / Wireframes Style guides / Pantone colors http://blog.mycolorscreen.com/post/4576460465/why-gorgeous- user-interface-design-is-important
  • Design A poorly designed site may literally repel viewers A polished website exudes professionalism Professionalism == $$$ Mock-ups / Wireframes Style guides / Pantone colors Image licensing http://blog.mycolorscreen.com/post/4576460465/why-gorgeous- user-interface-design-is-important
  • Design A poorly designed site may literally repel viewers A polished website exudes professionalism Professionalism == $$$ Mock-ups / Wireframes Style guides / Pantone colors Image licensing UI Design should not be an after-thought http://blog.mycolorscreen.com/post/4576460465/why-gorgeous- user-interface-design-is-important
  • Design A poorly designed site may literally repel viewers A polished website exudes professionalism Professionalism == $$$ Mock-ups / Wireframes Style guides / Pantone colors Image licensing UI Design should not be an after-thought Users decide UI, not the data! http://blog.mycolorscreen.com/post/4576460465/why-gorgeous- user-interface-design-is-important
  • Optimization and Performance
  • Optimization and Performance Small code is good code.
  • Optimization and Performance Small code is good code. The fewer lines in your source, the fewer bugs you’ll have, plus it will download and execute faster.
  • Optimization and Performance Small code is good code. The fewer lines in your source, the fewer bugs you’ll have, plus it will download and execute faster. Likewise, fewer files is good.
  • Optimization and Performance Small code is good code. The fewer lines in your source, the fewer bugs you’ll have, plus it will download and execute faster. Likewise, fewer files is good.
  • FRONT END DEVELOPMENT + BACK END DEVELOPMENT
  • Single-page Web Apps
  • Single-page Web Apps ?? ?? ? ?
  • Single-page Web Apps Questions Server Devs often ask ?? ?? ? ?
  • Single-page Web Apps Questions Server Devs often ask What about my sessions? ?? ?? ? ?
  • Single-page Web Apps Questions Server Devs often ask What about my sessions? What about my MVC? ?? ?? ? ?
  • Single-page Web Apps Questions Server Devs often ask What about my sessions? What about my MVC? But the business logic needs to be on the back end! ?? ?? ? ?
  • Single-page Web Apps Questions Server Devs often ask What about my sessions? What about my MVC? But the business logic needs to be on the back end! Can I return a 500 for all server errors? ?? ?? ? ?
  • Web App Web Services
  • Web App Web Services Use REST or RPC (no XML!)
  • Web App Web Services Use REST or RPC (no XML!) Design the app to use an API from the start
  • Web App Web Services Use REST or RPC (no XML!) Design the app to use an API from the start This allows complete separation of concerns
  • Web App Web Services Use REST or RPC (no XML!) Design the app to use an API from the start This allows complete separation of concerns Ideally, this API can then be made public with minimal fuss
  • Web App Web Services Use REST or RPC (no XML!) Design the app to use an API from the start This allows complete separation of concerns Ideally, this API can then be made public with minimal fuss Isn’t this the goal? Usually?
  • Web App Web Services Use REST or RPC (no XML!) Design the app to use an API from the start This allows complete separation of concerns Ideally, this API can then be made public with minimal fuss Isn’t this the goal? Usually? Hot swappable front ends!
  • Web App Web Services Use REST or RPC (no XML!) Design the app to use an API from the start This allows complete separation of concerns Ideally, this API can then be made public with minimal fuss Isn’t this the goal? Usually? Hot swappable front ends! HTML, Flash, AIR, Applet, phone/tablet app, API
  • Web App Web Services Use REST or RPC (no XML!) Design the app to use an API from the start This allows complete separation of concerns Ideally, this API can then be made public with minimal fuss Isn’t this the goal? Usually? Hot swappable front ends! HTML, Flash, AIR, Applet, phone/tablet app, API Templating Engines are Evil
  • Web App Web Services Use REST or RPC (no XML!) Design the app to use an API from the start This allows complete separation of concerns Ideally, this API can then be made public with minimal fuss Isn’t this the goal? Usually? Hot swappable front ends! HTML, Flash, AIR, Applet, phone/tablet app, API Templating Engines are Evil..."ish"
  • Webpages
  • Webpages You can use that templating language now
  • Webpages You can use that templating language now FED is more important than ever:
  • Webpages You can use that templating language now FED is more important than ever: SEO
  • Webpages You can use that templating language now FED is more important than ever: SEO Ads
  • Webpages You can use that templating language now FED is more important than ever: SEO Ads Load optimization
  • Webpages You can use that templating language now FED is more important than ever: SEO Ads Load optimization Performance (load and execution)
  • Webpages You can use that templating language now FED is more important than ever: SEO Ads Load optimization Performance (load and execution) Resources, Resources, Resources
  • CODE
  • CSS
  • CSS Image-less design is the goal
  • CSS Image-less design is the goal No GIFs, JPGs
  • CSS Image-less design is the goal No GIFs, JPGs Easy maintenance / changes
  • CSS Image-less design is the goal No GIFs, JPGs Easy maintenance / changes Easier theming
  • CSS Image-less design is the goal No GIFs, JPGs Easy maintenance / changes Easier theming ClubAJAX.org
  • CSS Image-less design is the goal No GIFs, JPGs Easy maintenance / changes Easier theming ClubAJAX.org Feature Detection
  • CSS Image-less design is the goal No GIFs, JPGs Easy maintenance / changes Easier theming ClubAJAX.org Feature Detection Modernizr
  • CSS Image-less design is the goal No GIFs, JPGs Easy maintenance / changes Easier theming ClubAJAX.org Feature Detection Modernizr CSS is notorious for being a horrible mess
  • CSS Image-less design is the goal No GIFs, JPGs Easy maintenance / changes Easier theming ClubAJAX.org Feature Detection Modernizr CSS is notorious for being a horrible mess OO-CSS
  • CSS3
  • CSS3 A “simple” example of a cross-browser gradient.
  • CSS3 A “simple” example of a cross-browser gradient. .is_firefox .grad{ background: -moz-linear-gradient(left, #FF0000 0%, #0000FF 100%); } .is_webkit .grad{ background-image: -webkit-gradient(linear, left #FF0000, #0000FF); } .is_ielt9 .grad{ filter: progid:DXImageTransform.Microsoft.gradient(enabled=true, startColorstr=#FF0000, endColorstr=#0000FF, GradientType=1); } .is_iegt9 .grad{ background-image: -ms-radial-gradient(top center, #FF0000, #0000FF); } .is_ie9 .grad, .is_fflt36{ background-color:#FF0000; box-shadow: inset -10px 0px 10px #0000FF; }
  • JavaScript
  • JavaScript The follow “works good enough” code has at least 7 bad practices. Can you spot them?
  • JavaScript The follow “works good enough” code has at least 7 bad practices. Can you spot them? if(document.getElementById("bannerSearchInput").value.length <= 0) { document.getElementById("bannerSearchInput").value = defaulttext; document.getElementById("bannerSearchInput").style.color = "#666666"; // Default text is gray }
  • GOOD EXAMPLES OF BAD WEBSITES
  • Solutions
  • Solutions Development Time
  • Solutions Development Time FED that knows some JSP will be much faster than a Java dev who knows some JavaScript and CSS
  • Solutions Development Time FED that knows some JSP will be much faster than a Java dev who knows some JavaScript and CSS Design the code so that an FED can step in at some point
  • Solutions Development Time FED that knows some JSP will be much faster than a Java dev who knows some JavaScript and CSS Design the code so that an FED can step in at some point In MVC, the “View” could mean:
  • Solutions Development Time FED that knows some JSP will be much faster than a Java dev who knows some JavaScript and CSS Design the code so that an FED can step in at some point In MVC, the “View” could mean: HTML, XML, JSON
  • Solutions Development Time FED that knows some JSP will be much faster than a Java dev who knows some JavaScript and CSS Design the code so that an FED can step in at some point In MVC, the “View” could mean: HTML, XML, JSON We need to encourage the growth of FEDs
  • Solutions Development Time FED that knows some JSP will be much faster than a Java dev who knows some JavaScript and CSS Design the code so that an FED can step in at some point In MVC, the “View” could mean: HTML, XML, JSON We need to encourage the growth of FEDs There are very few FEDs in DFW
  • Solutions Development Time FED that knows some JSP will be much faster than a Java dev who knows some JavaScript and CSS Design the code so that an FED can step in at some point In MVC, the “View” could mean: HTML, XML, JSON We need to encourage the growth of FEDs There are very few FEDs in DFW There are few (if any) colleges teaching front end dev