That's what names are for. I prefer to find _afterLeft_ spread all over the place rather than `x2<=x1` even if it actually increases code size by 50%. I can validate it only once, and if I stumble upon _aboveBottom_ I don't even need to validate it to infer what it means (left as an exercise for the reader).
This spaghetti line: `x2<=x1&&x1+w1<=x2+w2&&y2<=y1&&y1+h1<=y2+h2`, in my opinion, is much harder than `inside`.
I stopped reading before finishing the third page. It seems to me that what many paragraphs advise is to be reasonable, which is meaningful, but a bit too loose for guiding code reviews.
May I ask you to change the leading text to something more useful for remote workers?
REMOTE doesn't cover but the most basic possibility and 90 matches on this page make it quite cumbersome to find what suits you.
What about deprecating it and requiring posters to use instead:
REMOTE_WORLD - for telecommuting from anywhere in the world
REMOTE_US - for telecommuting from anywhere in the USA
REMOTE_US_TX - for telecommuting from anywhere in Texas, USA
REMOTE_MINUS_6 - for telecommuting from anywhere in the UTC-6 timezone, standard time
REMOTE_PLUS_1 - for telecommuting from anywhere in the UTC+1 timezone, standard time
Example: In the past, I telecommuted to Boston (US-MA) from Barcelona (ES). That job would have been advertised as "REMOTE_MINUS_5, REMOTE_WORLD". In fact I worked 3pm-11pm in ES (i.e. 9am-5pm in US-MA), which was certainly unusual but quite doable nonetheless.
Ruby on Rails Senior Full-Stack Software Engineer.
We are a team of 5 RoR Engineers looking for the 6th in a financial start up which is 20+ people big, fully funded, and making money since 2014.
If you like quality, tests, reviews, continuous deployments to create, improve and maintain a complex AWS-based financial application which allows shoppers to pay a week later, then email me at [email protected]
I would live in a big city with plenty of opportunities. Find an interesting job, where to work no more than 20 hours a week, and earn around 60K. I think your Angular experience is very marketable. And you can always tell your prospective employers the truth, that you made an application too good to keep working there for maintaining it at your salary level. Then use your free time for whatever you want, including meeting lots of people. You could find cofounders...
It's funny to see how many comments advise about beginning a Start Up. Of course, this is a Start Up forum. If this was a farmers forum, would many advise about beginning a farm?
Sorry to add a critic. If you want to make your PHP classes easy to extend, refrain from private and prefer protected. Otherwise, a developer that wants to extend one of your classes will need to also override (i.e. copy and paste) into her class all private members called from the members she really wants to override.
If you want to see how they code, why do you want to see their own algorithm? In normal conditions, They would Google the problem and find its algorithm on Wikipedia (with lots of additional information to peruse) and some interesting implementations on stackoverflow (both to choose from and to learn about related issues).
Programming in the wild has very little to do with knowing beforehand or being able to invent on the spot an algorithm.
But the real reason why software engineering interviews are being done that way is because programming is not perceived as an art anymore. Engineers' scope inside the company was greatly reduced, while their number increased. They are now commodity workers: Not only they must be replaceable, but also expanded and shrunk as soon as possible, much faster and cheaper than before.
For me it would be much more valuable if the programmer knew that a tree wouldn't be needed at all if expressions were represented in reverse Polish notation.
However, in the last 30 years, I needed to process expressions at work and by myself exactly zero times.
Yes, someone in another thread is discussing about skill sets to be learned to engineer software, but I think academy already does a decent job.
To engineer a good architecture you need time to thoroughly think and explore alternatives. Coupled with deep field knowledge and an even deeper know how, gained by means of experience. And to build the best is impossible by definition: you can only hope to build a better one.
I didn't know what a fast programmer was until I had to work with one. The king of copy and paste. All his neurons on his fingertips. He showed to me that thinking with their hands wasn't limited to manual workers. Luckily for me, his awesome speed allowed me to become his "boss" a couple of months after being hired. And I'm not being sarcastic here. The manager saw he was better left typing and me better left thinking.
A nice thing about "hello world" applications is that you can always use them as the starting point for any other.
The first step forward would be to change it from "hello world" to "hello {{name}}" and have the user input their name and the application show a custom hello.
Having this minimal input / output, now you can invest some time to make your app secure. This will teach you a lot.
Then you should feel ready to allow users to register, log in, and log out. This will teach you DB stuff and a lot more about security.
Then you should feel ready to allow users to add a profile with an uploaded picture. This will teach you about sophisticated UI issues, and even more security.
Then, except for scalability, machine learning and a few other special but mainstream technologies, I think you should feel ready to learn anything else.