|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
colleges don't teach programming but sometimes they neglect it so much that you don't see the point of theoretical background knowledge because you see no practical use of it. you don't see the theory solving problems in real life, so all of it stands in the ether. many students get demotivated by this fact (you feel like you are learning bunch of things that solve nothing).
they are right about not teaching the use of standard java api, but they at least should have made us aware of the basic building blocks used in today's software development.
as an analogy they teach you how a skyscraper stands without collapsing, but they don't tell you the existence of hammer, cement, steel and stone.
in the end you get grad students who put all application logic inside mysql because the only thing they know is how to connect a database and write sql. the epitome of the "law of the instrument"
|
I have bachelor's in sociology and have been following a successful software developer career over the past 3+ years (and I've started this career around the age of 30, mind you). All it really takes is enough motivation to learn the stuff you need. The beginning was pretty harsh, for a month I would go to job interviews, fail hard and then try to solve everything they asked of me at home. With each interview I got better (it's not so much learning programming but more about learning what you need to know in the industry standard) and landed myself an internship. After that it was a breeze.
You must know thought that programming isn't for everyone. You won't believe how many people I've seen over this 3 years who have no clue - from CS graduates who can't do the simplest things to veteran programmers who are stuck in technologies that aren't even supported for 6+ years now and still refuse to learn new things (even in their language of choice, I'm not even touching the delicate subject of learning a new language). Programming is all about self-improvement (at least for me it is) and constant pursuit of knowledge. There's plenty of people who don't view it like that and get stuck on working the same hours, doing the same shit over and over again for years, but that's not for me.
On the university side, I have a friend who used to be a CS PhD working at the uni. One day he decided to pursue a career in programming. He was seriously shocked when he learned how little did he actually know and he's not going back to uni.
|
Any software engineers in the US? I know it is a vague question, but is it worth it to move to the US and work as a software engineer? Is it stressful? Do you often have to work overtime? Is healthcare affordable?
On a different note, I was checking my C++ slides from year 2 at university. It was taught for 1-2 weeks. I'm wondering if lecturer knew what he was doing in C++... Some of mistakes I have spotted in his C++ examples: - No virtual destructor for base class (inheritance example) <--- he didn't use smart pointers to remedy this either - No const for getters - Using const void* parameters to do comparison (C qsort) instead of std::sort. - Using "using namespace std" - Using int for indices to overload subscript operator. - Setter method whose input parameter is not const. It just calls copy assignment. - Getter method which returns an instance of base class by value (lol)
Thank god for Effective C++ and being a professional C++ developer so I can spot bullshit. :D
|
Hyrule18968 Posts
On December 06 2016 09:27 Shield wrote: Any software engineers in the US? I know it is a vague question, but is it worth it to move to the US and work as a software engineer? Is it stressful? Do you often have to work overtime? Is healthcare affordable?
On a different note, I was checking my C++ slides from year 2 at university. It was taught for 1-2 weeks. I'm wondering if lecturer knew what he was doing in C++... Some of mistakes I have spotted in his C++ examples: - No virtual destructor for base class (inheritance example) <--- he didn't use smart pointers to remedy this either - No const for getters - Using const void* parameters to do comparison (C qsort) instead of std::sort. - Using "using namespace std" - Using int for indices to overload subscript operator. - Setter method whose input parameter is not const. It just calls copy assignment. - Getter method which returns an instance of base class by value (lol)
Thank god for Effective C++ and being a professional C++ developer so I can spot bullshit. :D Depends on the company. Working for an agency might not get you any benefits but you'll be hourly. Working directly for a company is usually salaried but there's also pretty affordable healthcare, 401k, and other benefits (including a criminal amount of PTO by European standards).
|
Academic development's quite different from commercial development, there's generally less of a focus on the "trade" aspect and more on the elegance of the theoretical solution. At least in my experience.
|
I'm currently working on a project to make my own tileset RPG game in HTML to release on the Windows Store and possibly online. I was wondering what sites there are for free use tileset art, sound, etc. that would be usable for a project like this(Too early to tell if I'll charge a couple $ or offer it for free, which depends on how far I go with it). I'm also interested in learning a little bit of how to make my own art with a free or cheap program.
Thanks for all your help guys! Very much appreciated!
...CS graduates who can't do the simplest things... Yeah... I think this is what I would've become, unfortunately, if I kept relying on college to learn Computer Science. Thank you for your thoughts, that was a good read.  What did your PhD CS friend end up doing after that? :o
Academic development's quite different from commercial development, there's generally less of a focus on the "trade" aspect and more on the elegance of the theoretical solution. At least in my experience. Agreed.
|
Its not that extreme with universities though. My current classes look like this: 1) Build your own operating system from scratch. (C, C++, Assembly) They teach some very basic programming (mostly for legal reasons I suppose) and then focus almost entirely on the OS part. They expect you to learn how to code yourself. You have to send in a snapshot of your current OS every 2 weeks for evaluation.
2) Build your own programming language + compiler + runtime enviroment / standard library. (Java, XText, Eclipse) They do a lot of XText and expect you to program your RTE in Java (but that is not required). They dont teach you any programming in this course and expect you to be able to do this yourself. You have to send in your language specification, compiler, development enviroment (automatically created from Eclipse) and a sample application.
3) Build your own Database Management System (based off of PostGres). The lecture doesnt teach you anything about programming but the programming exercises are not mandatory either. They recommend doing them for a better understanding of the subject matter though.
4) Build your own 3D video board game which is supposed to run on a huge multi-touch table. (C# + Unity) It should play like a multi-player board game with android tablets used for secret personal information or additional inputs. The devices should communicate using either bluetooth or wireless. VR-headsets optional. This is a group project which started with 13 students (we are 11 by now) and lasts 1 year.
5) Lambda-Calculus and theoretical mathematics. This has nothing to do with programming.
So you see, there is some programming to be done at the university and it definitely teaches you quite something, but the focus is usually on technologies which are more general and relevant for a longer period of time.
|
And they completely skip the part where they teach you how to write GOOD code. Or even just nudge you in the direction of solid material on that topic. It's the most essential aspect of programming after all. How to write a compiler/DB/whatever is just some random concrete applications - with fairly little practical use usually. Only very few people will ever write an actual DB themselves, and if they do they need far more knowledge than what a single couse can teach. I'm fairly certain that people would be much better off if more effort was spent on teaching how to write good code and then expect them to read up on the details of such niche topics on their own. Those topics will seem a lot less scary once you have a good foundation, anyways.
|
You people. Do you go to university to learn how to be a plumber? No. You go to university to learn water engineering. The actual plumbing is left to the plumbers. University level CS is to programming as water engineering is to plumbing. Programmers are the plumbers ( although plumbers get paid a lot better).
And yes, I have a PhD in CS. I need to do most of my own programming, because my project doesn't have funding to pay for one, and I enjoy programming. I dislike enterprise programming, though, so I'm in the right place. That said, programming is to my project as plumbing is to an experimental new water works. You need to show it can be built and it works in practice, but the main innovation is not in its plumbing.
|
There's a difference between teaching CS and teaching how to build an OS/DB/Compiler. Those are "how do I connect a kitchen sink" and "how do I install a bath tub". It's a pointless exercise to anyone who is interested in the actual science part, and the wrong focus for anyone interested in becoming a software developer.
The stuff I can get behind for a CS degree is all the math. That's great stuff. The semi-practical stuff that teaches little more than how to be a bad programmer and about as much knowledge about a DB as you can gather in 5 minutes from wikipedia - not so much.
|
On December 06 2016 16:53 3FFA wrote: I'm currently working on a project to make my own tileset RPG game in HTML to release on the Windows Store and possibly online. I was wondering what sites there are for free use tileset art, sound, etc. that would be usable for a project like this(Too early to tell if I'll charge a couple $ or offer it for free, which depends on how far I go with it). I'm also interested in learning a little bit of how to make my own art with a free or cheap program.
Try http://kenney.nl/
|
http://viewsourcecode.org/why/redhanded/bits/mudIn15LinesOfRuby.html
Mind = blown.
On December 06 2016 21:20 Biolunar wrote:Show nested quote +On December 06 2016 16:53 3FFA wrote: I'm currently working on a project to make my own tileset RPG game in HTML to release on the Windows Store and possibly online. I was wondering what sites there are for free use tileset art, sound, etc. that would be usable for a project like this(Too early to tell if I'll charge a couple $ or offer it for free, which depends on how far I go with it). I'm also interested in learning a little bit of how to make my own art with a free or cheap program.
Try http://kenney.nl/
Battle For Wesnoth is open source freeware. You could also check their assets (and respective licenses).
|
So, the semester is coming to an end. I am gonna need to come up with a project. Learning a new language, going through some book (hopefully interesting), or building something...
Any suggestions for someone that really only knows Java? Something that might look good on a resume for internships?
|
On December 07 2016 02:20 travis wrote: So, the semester is coming to an end. I am gonna need to come up with a project. Learning a new language, going through some book (hopefully interesting), or building something...
Any suggestions for someone that really only knows Java? Something that might look good on a resume for internships? Neural nets. They're powerful. There's lots of low hanging fruits. And most importantly, neural nets are very satisfying intellectually.
PS: Most people in the industry use Python for writing basic frameworks and CUDA for actual calculations.
|
On December 07 2016 02:20 travis wrote: So, the semester is coming to an end. I am gonna need to come up with a project. Learning a new language, going through some book (hopefully interesting), or building something...
Any suggestions for someone that really only knows Java? Something that might look good on a resume for internships?
If non-web language, then C# is a good start. It's used commercially and it is similar to Java. Or, are you looking for completely different language?
|
On December 07 2016 02:46 Shield wrote:Show nested quote +On December 07 2016 02:20 travis wrote: So, the semester is coming to an end. I am gonna need to come up with a project. Learning a new language, going through some book (hopefully interesting), or building something...
Any suggestions for someone that really only knows Java? Something that might look good on a resume for internships? If non-web language, then C# is a good start. It's used commercially and it is similar to Java.  Or, are you looking for completely different language?
I'd suggest learning something completely different that you would use in addition to java like scripting. Ant, batch, shell, etc
|
On December 07 2016 02:45 beg wrote:Show nested quote +On December 07 2016 02:20 travis wrote: So, the semester is coming to an end. I am gonna need to come up with a project. Learning a new language, going through some book (hopefully interesting), or building something...
Any suggestions for someone that really only knows Java? Something that might look good on a resume for internships? Neural nets. They're powerful. There's lots of low hanging fruits. And most importantly, neural nets are very satisfying intellectually. PS: Most people in the industry use Python for writing basic frameworks and CUDA for actual calculations. Haha, I was going to suggest that. Python (scipy, panda) is great for scientific programming, and neutral nets are a hot topic, are easy to implement and you can dive as deep into the theory as you like.
Don't start with something too complicated. It has to be interesting to you, but achievable. Probably a perceptron network is about as complicated as you can realistically use in an undergrad project.
|
Hyrule18968 Posts
On December 07 2016 02:52 Blitzkrieg0 wrote:Show nested quote +On December 07 2016 02:46 Shield wrote:On December 07 2016 02:20 travis wrote: So, the semester is coming to an end. I am gonna need to come up with a project. Learning a new language, going through some book (hopefully interesting), or building something...
Any suggestions for someone that really only knows Java? Something that might look good on a resume for internships? If non-web language, then C# is a good start. It's used commercially and it is similar to Java.  Or, are you looking for completely different language? I'd suggest learning something completely different that you would use in addition to java like scripting. Ant, batch, shell, etc well, MS is replacing cmd with PowerShell soon, so batch is effectively deprecated
|
On December 07 2016 03:35 tofucake wrote:Show nested quote +On December 07 2016 02:52 Blitzkrieg0 wrote:On December 07 2016 02:46 Shield wrote:On December 07 2016 02:20 travis wrote: So, the semester is coming to an end. I am gonna need to come up with a project. Learning a new language, going through some book (hopefully interesting), or building something...
Any suggestions for someone that really only knows Java? Something that might look good on a resume for internships? If non-web language, then C# is a good start. It's used commercially and it is similar to Java.  Or, are you looking for completely different language? I'd suggest learning something completely different that you would use in addition to java like scripting. Ant, batch, shell, etc well, MS is replacing cmd with PowerShell soon, so batch is effectively deprecated
In my limited experience Ant is the most common pairing, but you'll end up doing batch/shell depending on your environment regardless.
|
Hyrule18968 Posts
pshhh
even on windows I use shell. cygwin master race
|
|
|
|