27 karma · joined November 24, 2012
I feel like that makes it pretty clear why this website is normal and why "iFundMen" would be odd. This stuff is really not as complex as people are making it out to be. Also, ifundwomen != ionlyfundwomen.
As far as trying to answer why so many other countries consistently beat America in math and technology I think a small answer can be gleaned from your statement: "we were encouraged to pursue whatever we wanted to pursue." That is not all that common in many countries and cultures in the world. I think a lot of it has to do with economic or political desperation. I have worked with people who learned how to code because they didn't even have running water in their village in India and programming was a way out. Or more relevant to this story, they lived in a Russian town and got a PhD in engineering so they could come to America and be an engineer. These types of stories are very, very common in the Bay Area. Looking at the education systems is helpful, but I think you need a real driving force to get most people motivated to learn difficult things.
1. Interfaces can be used by any class no matter where they live in their class hierarchy. You can only extend a single (abstract) class in Java because the language designers saw the special rules and overrides other OOP languages like C++ used to avoid the 'diamond problem' and decided against it entirely. Note that in pre-Java 8 implementing multiple interfaces cannot lead to the diamond problem because if more than one interface exposes the same method signature then the compiler doesn't care because it doesnt have actual functionality that could be conflicting. So, because you are limited to only extending one superclass it is easier to bundle functionality in multiple smaller interfaces that can be implemented no matter where your implementing class lies in the class hierarchy.
2. Interfaces provide only a contract of functionality which in practice means they are easier to reason about and use. If you are implementing an interface you dont have to worry about calling a super constructor or any other garbage. Just implement the method signature. Of course you could ask "What if you only had abstract methods with no implementation in an abstract class", in which case I would refer you to point 1. A class that already has some existing superclass could not extend that abstract class.
I hope that clears some stuff up. Just in case you read that and thought the Java language designers were stupid for adding default methods in Java8 they had really good reasons to (mostly to support backwards compatibility with a large change called Lambdas). But having some functionality in interfaces could be argued for as well. In practice there are companion classes in the Java API that are just there to provide some base functionality that they could not do because of the previous limitations of interfaces. Also, the Java8 rules for fixing 'the diamond problem' with conflicting default methods in interfaces is pretty straightforward and rarely encountered.
My point is that being able to drink one glass of the stuff doesn't really tell me much.
Here is some information we would need to give more helpful information:
- What type of positions / companies are you applying to? This is important, because I can imagine applying for dev jobs at small rails shops would be difficult because they are looking for people who can hit the ground running on day 0 (Ie: They are looking for rails at your last job).
- My parents do not live anywhere near tech jobs. Are you located near a good number of tech jobs where you can cast a wide net?I'm a software engineer at Gliffy working on the SaaS diagramming application. I found out about Gliffy from the 'HN: Who is Hiring?' from last july, and I love it here. So I figured I would post another Who is Hiring since my team is looking for a Senior Engineer.
------About the Application------
Gliffy (https://www.gliffy.com/)
Backend:
* play! framework (So some experience with Java, Scala or another JVM language is required)
* Mysql
* Node.js microservices (Understanding of js necessary, but node.js not required)
Frontend:
* Ember
* HTML5/Canvas
------About the Company------
Gliffy is a profitable, bootstrapped startup that currently has 23 employees.
Gliffy benefits highlights:
* Everyone can work from home Monday and Friday
* Quarterly Bonuses
* Equity plan available
* Employer 401k contribution
* Health + Dental insurance
If you are interested see our posting here: https://www.gliffy.com/jobs/