jQuery 2.x dropped support for <= IE8.
1,260 karma · joined February 3, 2011
jQuery 2.x dropped support for <= IE8.
28.9 hours * 52 weeks ~= 1500 hours
---
37.5 hours * 48 weeks ~= 1800 hours
37.5 hours * 47 weeks ~= 1760 hours
37.5 hours * 46 weeks ~= 1725 hours
37.5 hours * 40 weeks ~= 1500 hours
So even if you have 4 weeks off and 10 holidays, Treehouse still expects ~225 hours less work per year, or the equivalent of having 10 weeks off and 10 holidays at a normal 9-5 job with a half hour lunch. Treehouse likely gives 2 weeks off, 10 holidays, and 52 Fridays off :)
The biggest problem with Angular is that it has a very steep learning curve, and writing bad Angular code is worse than writing bad jQuery soup.
- Using watchers/observers are encouraged, which makes control flow impossible to read for sufficiently complex pages. It effectively creates a potential side effect on any variable that can't easily be traced, and multiple watchers can casacade changes to eachother.
- Because of the way watchers/events work, Angular's digest loop implements a TTL, where it will keep evaluating watchers/events until there are no more changes, with a hard stop at $TTL+1. While this solves a lot of problems, it can make it very difficult to monitor state changes in the view, when a console.log/debugger/breakpoint will get triggered ten times as often as you'd expect.
- Angular has a lot of terminology[1], and each concept has its own set of idiosyncracies. When you combine this with the additional bootstrapping logic in Jasmine (and things like isolateScope), it ends up being very complex for a developer's first framework.
- Parent/Child relations in Angular are inferred from the structure of the DOM. This means you need to read your templates to figure out how your app is structured, and you'll end up with tight coupling unless you're diligent about your design decisions.
- It's very easy to let a lot of view logic slip into ng-bind and similar attributes. All of this logic should be extracted into objects and unit tested, but this means that a lot of the convenience of using Angular's declarative syntax end up being minimal at best.
- Like any framework -- expanding on what #quadratini said -- you need to use Angular's built-in libraries to do anything. While the syntax is reasonably similar, $timeout, $interval, $http, $q, etc all need to hook into the digest cycle, and this means you'll be wasting time figuring out when to call $apply or when to wrap a piece of code in $timeout just to get it to play nicely with Angular.
Angular is very powerful and not necessarily a bad framework, but based on my experience using it in a team environment for the past year and a half, unless everyone is senior-level at Javascript, you're going to quickly end up with a lot of hard to maintain, mediocre code.
const description = (nameAndOccupation) => {
const [[first, last], occupation] = nameAndOccupation;
return `${first} is a ${occupation}`;
}
description([["Reginald", "Braithwaite"], "programmer"])
//=> "Reginald is a programmer"
This is going to make code a lot more readable. I'm excited!Society of Grownups https://www.societyofgrownups.com/
Want a chance to build financial education software from the ground-up?
Society of Grownups offers in-person and online classes, chats, supper clubs, guest speakers, special events, and presentations—all arranged around things that matter to adults, from good food and fine wine to career advancement, building a home, being a good parent, or simply finding balance. Our cozy storefront in Washington Square can host classes of up to 20 people, events of up to 50, and even more online with your help!
We're looking to fill several new positions, and we need a Back-End Developer (Ruby + Rails), Javascript / Full-Stack Developers (Node.js + Ember), a Mobile UI Engineer (We can try out React Native!), and a Test Engineer (to help us reach TDD zen).
We're backed by MassMutual, so you'll get the stability of a 160 year old company, with the environment of a startup that runs marathons, not races.
We offer exceptional benefits, including health/dental/vision/life/disability, 5% 401(k) matching, flexible hours, and work-from-home days.
Interested? Send any questions, or a short cover letter and resume to jobs@societyofgrownups.com
* I sense that what you work on has a lot to do with how much you learn. If true, how do you end up in an environment where you're learning a lot?
Ask during your interview! If a company has a culture of learning, they'll usually be very upfront about it. * I sense that who you're around has a lot to do with how much you learn (because of guidance and mentorship). How do you end up in an environment where you're surrounded by the right people?
Again, you'll have to scope this out during your interview. It's definitely true that you need good teammates in addition to a culture supportive of learning. * Is it a good idea for more experienced programmers to still take classes? Read books? Etc.
Definitely. I find that I read more programming books now than when I started learning. The big difference is that I'm reading to learn about new concepts and ideas, rather than "how does this piece of syntax work." * What are the skills worth having? Is it worth learning all the different frameworks? Being familiar with different levels of abstraction (hardware, architecture, systems level, scripting level...)? Drilling math and logic?
There's value in everything you listed, but becoming proficient in all of them is a life-long task. Find what interests you and focus on it! In general, how can a programmer learn as much as possible?
The key is to spend every waking minute programming. And a related but tangential question, if you're a good programmer, how did you get good?
Wrote a lot of code, and constantly critiqued everything from the code I wrote to the tools and processes I used.I'd recommend using GitHub however you want, and when you want to apply for jobs, create a small website on GitHub Pages highlighting your best projects. If you can intelligently talk about your different projects and how you improved between them, that will be a hugely positive signal when applying for a junior position.
Brainfuck commands: http://en.wikipedia.org/wiki/Brainfuck#Commands
Bit shifting: http://stackoverflow.com/a/141873/58740
Getting rid of the noise is my biggest concern. Ideally, a developer should never have to know about or touch the HTML that's being generated. It's a lofty goal, for sure.
Email me if you'd like to chat about it!
Let's say you're deploying a new Debian VM; at the bare minimum, you need to know:
- Basic Linux commands (top, tail, cat, cp, mv, ls, cd, rm, mkdir, et cetera)
- Casual vim/nano usage
- Casual less usage (mainly Ctrl-B/F)
- Knowing that `man [command]` and `[command] --h` are the easiest ways to decipher a tool
- iptables/fail2ban (security)
- Basic MySQL setup (almost everything can be done in a gui)
- Basic Apache2 configuration (vhosts, enabling mods)
- How to manage packages (apt-get update; apt-get upgrade; apt-get install [whatever])
At that point, you just need to read a few tutorials to fill in the gaps, and to figure out how to get Apache to serve files from your language of choice.
The easiest way to go about all of this is to setup a VM locally, document each step you take while configuring it, then repeat that a few times until you feel comfortable. Then you can figure out how to automate everything!
Do you have examples of other apps which you consider aesthetically pleasing?