REST has the same problem as object oriented programming. It's too skeuomorphic. Lots of web applications are wrappers around conceptually monolithic resources, so it's convenient to use a protocol that makes that assumption. But as soon as you need to nest resources, or perform some action that has nothing to do with CRUD, or do just about anything interesting, the metaphor begins to fall apart.
(That's also why OOP has all these "patterns." Many are just attempts to cope with the "object" metaphor falling apart. "Is" an AttackingRock a Monster, or "is" it an Obstacle? Hmm...)
This is wonderful. Thank you for sharing! I've been putting off a JS coding project for some interview, which I now think I'll write in Lumen. Another pleasant surprise: it was written by the HN moderators.
Wake up at 5am, meditate, exercise, and shower before starting your day. Stop eating processed carbs and sugar. Get off the computer at 9pm and sleep at 10pm. Clean your room. Schedule sprints of work for yourself, drag yourself over to your chair, and force yourself to start typing anything. Talk to your friends more often. Set 1-3 large goals at the beginning of the day and explain to yourself why they're important.
There are lots of reasons you might be feeling this way, and it's different for everyone. Maybe you're disorganized, or you feel your work is too easy, or your health is bad. You'll have to find out which one it is by trying a lot of different things.
If after doing all this you still feel the same way, please seriously consider the very real possibility of clinical depression, and seek professional help.
This goal is too hard to achieve! It is like the 10x programmer, it is just too much to be a realistic goal. I mean, good for you if you can wake up every day at 5 am and meditate. But aside from the 0.0001% of people on the world that can do this, most people can't.
This is a way of life which seems like living in a monastery to me. Totally unrealistic.
Neither getting up at 5am or daily meditation are all that rare or difficult. And if you take perfection out of the equation, as you should, then aiming to do them 80-90% of the time makes it even easier.
I’m a natural night owl, but I routinely (80-90% of the time) go to bed early and get up at 4am. It’s really not that hard.
Based on the current research on chronotypes [0], you seem to be the exception, not the norm.
'“If people are left to their naturally preferred times, they feel much better. They say that they are much more productive. The mental capacity they have is much broader,” says Oxford University biologist Katharina Wulff, who studies chronobiology and sleep.'[1]
Throwing a bit of anecdotal evidence out: throughout high school I had to get up at 6:45 every weekday for four years, and constantly felt tired throughout the day, but it cleared up at night and I'd be energized at 1am. I had to take naps after school, but even if I didn't I'd still be unable to sleep at 11pm. Something about everyone else around me being asleep and not distracting me allowed me to focus on things better.
Now I have a job with very flexible hours so I go to sleep at 2am and wake up at 10am like clockwork. I feel and perform much better all around. I'm convinced that if I had had a sleep schedule that worked for me in my teens I'd have been able to achieve much more than I did.
I think your claim (and probably mine) is too broad. It sounds like most people have a fair degree of flexibility, and I'm skeptical about our depth of knowledge in this area. For example, this:
When they wake early, for example, night owls are still producing melatonin. “Then you disrupt it and push the body to be in the daytime mode. That can have lots of negative physiological consequences,” Wulff says, like a different sensitivity to insulin and glucose – which can cause weight gain.
I couldn't find the study where that came from, but I wonder how long it lasted. Even now, if I revert back to staying up late, it can take a few days of getting up early before it feels amazing.
All of which is to say that I suspect that genetics plays a role in our natural preferences, but our bodies seem remarkably adaptable to different lifestyles.
Also, I think it was probably unfair of me to say "it's not that hard", because it took me years to get to the point where getting up at 4am wasn't that big of a deal. In retrospect, the key is almost embarrassingly obvious: go to bed early (9p). I don't take melatonin or anything, but I've always had a really easy time falling asleep, so others might find that helpful in getting over the initial transition of early bedtimes.
I don't understand what's so unrealistic about gp post, it can easily be done as a 40 min morning routine.
Meditation can be as short as a couple minutes, budget 5 min. A good workout can be done in 20 min, and 15 min for a shower.
There is nothing magical about that. I dont wake up at 5am, I wake up at 6:45, but the routine is just as effective at 6:45am :)
I also agree mood is highly affected by diet, so save some time and get some good nutrition in by topping that morning routine off with some premade in mason jar overnight oats (rolled oats, milk, chia seeds, a fruit and a nut )
10 minutes to get dressed, and your ready for the day within an hour from wakeup.
When people say waking up at 5am/sleeping at 10 or earlier is hard, they don't mean the physical act of waking up or sleeping early is hard - that just takes some time/body adjustment.
In my experience people fail to do it because of social reasons - if you are young it is likely that your current social activities or groups might lead you to get home past 10pm.
What's the definition of a processed carb? I'm scarily ignorant about this.
I feel like anything in the frozen foods / microwave it 2 mins and eat it isle probably falls into this category, but I'm not sure exactly why. Is it the enriched wheat flour? Do you know a good unbiased resource for learning about this?
Carbohydrates is a term that groups sugars, starches & fibre together. There are simple carbohydrates (breads, cereals, desserts and other man-made carbs) and complex carbs (fruit, veg, whole grain foods)
Simple carbs are broken down and consumed very easily, complex carbs take longer to be absorbed and energy is released over a longer period.
A good rule is to eat things as close to their natural form as possible.
Most products have been processed in some way before eating - cleaning & packaging being the simplest.
However baking, frying, adding excess sugar/salt, preservatives, additives, etc happens in a large amount of products that we don't realise. It is astonishingly easy to consume these products to excess (muffins, donuts, bread, potato products).
Frozen food / microwave in 2 mins is not actually bad for you. You can get bags of microwave rice or veg that are perfectly healthy (check the ingredients).
A good place to start is getting familiar with where certain foods are in the Glycemic Index.
In terms of improving your own diet and improving energy, just make simple substitutions. Swap fries > sweet potato, or white bread > whole grain wraps, or chips > nuts & seeds.
CoderPad is really, really good. I've interviewed using a bunch of alternatives, and CoderPad is far and away the only one that works reliably all the time. It always cheers me up when a company tells me they're using it, because I know it won't lag, the vi keybindings will work, the built-in terminal will work, there won't be weird interface glitches, every language I need will be there, etc.
This sounds hyperbolic, but I've never wanted a feature during an interview and found CoderPad to lack it.
It always cheers me up when a company tells me they're using it
But how often in real life does a manager come to your desk and say, implement this feature RIGHT NOW and by the way I'll be standing over your shoulder the whole time? Would your first thought be, damn, I hope my key bindings work?
It doesn't matter how technically good a thing is if it shouldn't even be a thing in the first place...
An interview isn't a surprise attack, they're usually scheduled days in advance. Good interviewers will usually characterize what kind of questions you can expect to receive ahead of time. I'm sorry that you've had bad experiences during interviews, but the process is difficult for both parties. It can be very difficult to assess both candidates and companies without spending an inordinate amount of time in the process. CoderPad offers a particular cost-benefit tradeoff, and longer take-home assignments offer another. Onsite projects offer yet another, etc.
In real life, my manager tasks me with doing something, and then it's up to me to figure out how to do it.
Sometimes, there's already a library or SaaS product that I could use, but the catch is we have to pay for the product.
For something that isn't a core business expertise, I could take an afternoon, implement it myself, and then spend all of my time maintaining that instead of working on our company's product, which is ultimately penny wise but pound foolish.
Smarter companies will realize some things are worth paying for, and seeing a company that has picked coderpad demonstrates that they are willing to pay for quality software that works.
> It doesn't matter how technically good a thing is if it shouldn't even be a thing in the first place...
We should have universal basic income and I shouldn't need to have a job not to be destitute, but until then, I'm going to keep going in to the office.
If the job has a large coding component, the candidate must code at some point in the hiring process. Take-home problems work out worse than interviews, primarily because coding isn't a solitary practice.
Discussing a problem, getting a shared understanding and outline of the solution, and then seeing how the candidate turns that solution into code - that's the kernel of a coding-heavy job, and it needs to be observed during the interview process to make even an approximate evaluation of their ability.
Other forms of observation can substitute: strong personal recommendations from previous co-workers, or famous accomplishments visible from afar, where there's no doubt as to who exactly accomplished them. But observation must be made.
The job I'm recruiting for requires someone to be able to write code. Also, there are a lot of bullshitters in the world. Given these facts, I conclude that writing code in a an interview for a position where you'll be writing code is necessary.
I used to tell myself I couldn't code or write without the perfect font. I'd spend hours looking for it, and end up not getting any work done. When I finally did get around to actually working, five minutes in and I'd forget about the font completely.
I have a (rather lazy) friend who's been asking me to help him start a blog for years now. I've promised to after he
produces his first block of content, and he keeps saying he can't write if he doesn't feel the design is aesthetically pleasing. If he'd spent his time writing instead of worrying about this, he'd have a crappy initial draft, several revised drafts, and probably something decent by now. But no, that prohibitively unattractive font!
It was nice of iA to write this up, and design posts are a fun read, but does anyone who's busy actually writing care about this?
I recently converted my dynamic DB-driven blog to a static website. I did not predict how badly the added latency between having an idea, writing down the first flawed paragraph, saving a draft, reading what I wrote, then revising and publishing would reduce my writing output. Sure, I can write in Google Docs, but because it's not on my site one click away from being "out there" I am far less compelled to write down my fleeting ideas. Over time I have learned that fleeting ideas are the best ones because they exist at the limit of your understanding. Maybe if you help set up his blog, he'll be more likely to write?
I had the opposite feeling. I wrote my PhD thesis in 1998-2000 and the editor of choice at the time was Word.
It was a pain to deal with the formatting, spacing, page breaking and other -ings.
I then tried LaTeX and all problems vanished. Since I could not influence the output (at least without a lot of work) I simply gave up and started to "code my text". It was way faster than admiring my artful working all the time, I just complied the text from time to time and I was done.
Markdown is a must. I used it on dynamic blog and on my static site, but I paid less attention to my writing when posts were not "live".
I believe that Bret Victor's Inventing on Principle concept of minimising the time between having an idea and seeing a change universally applies to every user kind of interface.
His buddy isn't being blocked by a clunky workflow, though. His friend has trouble starting because he can't see his writing in a font that he likes.
I'd suggest that the friend write his first post in Word or somesuch with a font that he likes. Then, when he has a good first post, export it to the blog.
I completely agree. I spent quite awhile setting up a Hugo powered blog, getting my theme just right, getting GitHub pages with CloudFlare for SSL working. And then...nothing. Because there's just too much friction.
I'm going to move to WordPress and be done with it. No I won't have faster than lightning page loads anymore, but it'll be much lower friction to publish something.
For me, I need breaks, and stimulation. Sometimes, tinkering with fonts and colors is just the right kind of distraction to get a project back on track, and to replenish my joy of coding.
Honestly, I think I have about six hours of full-concentration work in me in a typical day. Less, if it's mentally demanding work. Sometimes, the best thing I can do for a project is take a walk, or let it rest for a bit and let my subconscious keep churning on it.
I'd guess in almost any trade, the craftspeople care about their tools, even aspects that are mostly aesthetic. I consider myself pretty busy, but I still spend a half an hour every few months reviewing the space of available fonts, looking for something that appeals even more than my current favorite.
(FWIW that's PT Mono for the last few months, after almost a decade of using Ubuntu Mono exclusively.)
Most subtle ergonomic issues are weakly related of our preferences. Even if people consciously prefer one font to another, they may be more productive in the one they don't like. If there is actual difference, it should be measured not discussed.
Dual space fonts look and feel good for me, but I'm not sure if they have any value. Even aesthetic value may wear off and be just novelty.
It's really important not to skip the math. As a friend once said to me, doing deep learning without understanding the math is like gambling. It's fine to initially take a more practical, project-based approach for the sake of staying motivated, and you'll retain things better if you have project goals in mind, but, the math is that important.
The good news is that compared to other technical fields, the math is also relatively shallow. Here are some good resources that you don't need more than calculus/linalg for (I've used all of them and they got me off the ground):
Once you feel confident, the Deep Learning book is more math-heavy, but it is really very good. The authors are more or less deep learning gods. It'll teach you a tremendous amount about how/why neural nets work and the principles used to discover new architectures, and gain a strong intuition for how to use neural nets as a tool. Read it slowly---unless you're already good at math, it takes a while to get through. Don't skip the first five chapters. Use Google and Wikipedia to pick up concepts you don't understand along the way instead of skipping over them (it will bite you later).
3Blue1Brown is a treasure. The production value is excellent, and he's great at taking seemingly uninteresting ideas and painting a beautiful picture to connect them in twenty minutes. I used to go through a video before falling asleep each night.
If someone does something wrong, Alice tells them plainly, and they get offended, whose fault is it? Some people say it's Alice' fault for offending; some say it's the person's fault for doing it wrong in the first place, and for subsequently getting offended.
I think we're conflating is and ought here. It's probably a fact of reality that most people aren't happy to be told they're wrong. But arguably people ought to accept the consequences of being wrong, e.g. feeling bad when they're told.
I've talked to lots of startups in San Francisco. Most are failing, just due to the nature of startups, but can survive if they reach a finite set of straightforward goals. They've found product/market fit, they know what they have to do, they just have to do it, and the correct 10,000 characters of code input into a computer would solve all their business problems. There's often a lot of handwringing about why they're failing: the process is wrong; communication is wrong; something or other. But the largest reason they're failing is that they're insufficiently good at technology. You know who'd be really good at fixing that? A team of Alices.
I think Alices get too much flak. Bob is genuinely a toxic character. But if your only fault is telling the truth, which offends people, and you're otherwise excellent at your job--- there's a huge opportunity for twenty Alices to get together, bypass the inefficiencies of being offended, and win big. Tech has an obvious historical example.
Edit: I reread the description of Alice. All right, maybe don't browbeat your point into others.
Alice is so vaguely portrayed here that I think it's impossible to draw conclusions, let alone call her a brilliant jerk.
As you mention, pointing out when things are wrong isn't being a jerk, it's doing your damn job. "Having little empathy for others" isn't describing behavior, so it's meaningless here. OK, "browbeating" might be bad, but what does that mean anyway? Is she repeating the issue a month later after the problem got ignored, or is she micromanaging it, or what? There's no indication here. Whatever it means, Equifax could have used some browbeating on security issues.
There's no indication about why people try to avoid working with her. Does that refer to other developers, or does HR try to avoid her they go around asking for donations for girl scouts or something? I don't see a real problem with the latter. If somebody had reputation for pointing out problems in code, I wouldn't be avoiding her, I'd be seeking her out.
>They've found product/market fit, they know what they have to do, they just have to do it, and the correct 10,000 characters of code input into a computer would solve all their business problems.
Or they can get a huge team of pleasant and great-looking people that will leave a very good impression and raise tons of capital to keep burning through cash for years without fixing any of those problems. As long as the investors are OK with this, people will keep on using it.
(That's also why OOP has all these "patterns." Many are just attempts to cope with the "object" metaphor falling apart. "Is" an AttackingRock a Monster, or "is" it an Obstacle? Hmm...)