Yep, mod this one way up.
It has or is associated with a sufficient number of acronyms to qualify as a government-approved service, e.g., 3PAO - Third Party Assessment Organization (http://www.fedramp.gov/). Geesh...
Seriously, you want to consider services like this because 1) you need to certify your solution in some accreditation official's notion of sufficiency, and 2) they've already done the work in dotting the 't's and crossing the 'i's
My training is in software, but in my recent job I have worked issues involving manufacturing processes, concrete spall, the dynamics of new grease in generator bearings, and thermal stresses on electronic components.
WRT the hobby thing, a lot of my current responsibilities involve networking, both long-haul and local, and I learned what I know wiring up my house. No courses, no certs...
It's good to learn a particular engineering discipline early on, but if you want to really show value to employers while continuing to do interesting things, my experience is that it's more about demonstrating logical, data-driven thinking than coding or soldering or somesuch...
Yep, find main/WinMain, work your way down...
-Experience... (subject line wouldn't let me type the whole thing...)
I'm now at the wane of my career, and here's how math went for me:
- B.S. CIS (in the business college, three math courses; in the advanced course, if you could identify the integral sign, you got a B. Oh, and a stats course, more on that later)
- M.S. CS (curiously, you don't need the advanced math as a prereq to a lot of master's CS programs. Took a discrete math course, which IMHO is the only directly relevant math to the concepts that comprise CS)
- DCS (Doctor of Computer Science, but we did the dissertation thing. No math per se, but my diss chair had me go chase the second differential as a possible test for my hypothetical correlation, but it didn't work that way. I think he just did that to be funny)
My computer career has had a healthy dose of software development and management, and until recently my calculus deficiency wasn't a hinderance. However, statistics have been pervasive in all my jobs, either directly in the code or indirectly in testing or management. My last string of positions have been in the domain of missile defense, and this is where I had to go dig out the old texts to figure out such things as Taylor series and RK4 integration - knowing ballistic trajectories is all about this topic. And again, stats pervades.
So, based on direct experience (three degrees, four 'math' courses, and a varied string of jobs), I'd say 'It Depends.' There are a lot of things to do out there, and I know you can make a decent career in computer science without running the undergrad math gauntlet. However, there are certain domains where it is used; if you want to go there, you need to be able to 'speak snake'. And, as much as I hate to say it, familiarity with the ways of statistics is useful in most any place, if for nothing else than to be able to tell people who put up graphs of amorphous point clouds with a line running through them who say, 'and it's evident there's good correlation' that they're full of liquid shit without the proper statistical test.
kernel, glibc, and select command line utilities, most from busybox. Some targets have gcc, so you can wget/./configure/make/make install most anything. Limited package availability.
I use it with qemu and sometimes VirtualBox; I can make a bootable vm in about 3min start-to-boot.
I suffer with the Intel GPU in my personal laptop, so I've long been interested in what can be done minimally. So, here's my take on "Hello World" for VR. using Three.js:
No shaders required in the current download, but I do have a commented-out shader skybox in the source, look at index.html. A simple y-deformed terrain mesh from a grayscale heightmap, water is just a phong-material mesh, no extra texture. I got the character and basic keyboard/mouse event handling from another Three.js example. In fact, most of it is copy/pasted from other available examples, my intent being to round up the minimum needed to produce a rudimentary 3D VR for subsequent enhancing.
It will do multiplayer with a broadcast-repeater websocket server, which I have turned off right now because I DON'T TRUST ANY OF YOU!! I used the test-server that comes with libwebsockets, almost without modification.
WASD keys make you walk around, as do the arrow keys. Drag the mouse around to rotate your view. t-key immediately transports you to the highest point on the island, otherwise you have to walk everywhere. c-key toggles character crouch/stand. x-key toggles websocket connect/disconnect, but there's no server running right now. Oh, I already said that.
Runs okay in FF18 and really good in Google Chrome. I have had my laptop shut down for thermal, but I was running three Chrome windows to test multiplayer...
If you want the code, git-pull it here: https://github.com/butcherg/walkabout.git
First off, the acronym is CoBOL, for Common Business Oriented Language. For thoses with snark about JAVA/Java...
Now, I'm pretty sure that, when most enterprises big or small set out to write new things these days, they're not including CoBOL in the implementation trade space. Yes, you can do a lot of things with the language that the originators didn't contemplate (I wrote a linked list program in my undergrad endeavor), but why hurt yourself in the process? The Indiana Jones knife-vs-gun scene comes to mind.
What's going on now is that, in the world, a bit of critical business logic is captured and exercised in the name of CoBOL, and folks saddled with it are afraid of messin' with what works for two reasons:
1. Afraid of not translating it completely in the new implementation, and not discovering that until the customer sees the result.
2. Afraid of differences in processing in the underlying tools that won't be identified until after the customer sees the result.
Notice the 'customer' in each of these fears. Some endeavors don't cotton to customer beta testing...
So, until 1) compelling business cases can be made for conversion, and 2) the risk of migration to something newer/better/sexier can be effectively communicated and managed, usually by folk who don't understand software, stuff like CoBOL will persist.
You're in the throes of obtaining an education in computer science, but lament about not getting training in web development. Issues with the quality of your CS program aside, these two things are not equivalent entities.
Web development is about using specific tools to build a class of applications. Computer Science is the study of the foundational concepts underlying the tools, concepts that your web development tools mostly abstract from your concern. It may sound like I'm denigrating a specific career focus on web development, but no, it's just a matter of your priorities. If web development is what you want to do, go get that training and do it well.
That said, a decent understanding of CS concepts will server you well in _any_ application development. It just may be a little difficult to see that right now...
Hmm... I thought Perl was C with nicer data types, or bash with nicer conditionals. That it does sed and awk things is just gravy.
I usually think of Perl as that multi-purpose knife in the bottom of the tool box; not a 'proper' tool per se, but so useful when the other tools don't have that particular pointy-thing that fits in the torx screw or a scoopy-thing that happens to gouge more fittingly than the fancy chisel.
I learn new languages when I have a particular problem to solve. I learned Perl way back for such a reason. I later looked at Python, but I didn't have a problem handy that wasn't more expediently solved with Perl. Too bad I learned Perl first...
As a coder who has largely done what I'll call "engineering", I think the word is misaligned in all its disciplines. Real "engineering" occurs (or should be occurring) in endeavors that require the efforts of multiple people to build things that no single person alone could practically build (yeah, don't engage me on where to draw THAT line...). Real engineers, IMHO, spend their best time making Effective Communication between practitioners in all the disciplines in order to build big stuff with "quality" and "reliability" (yeah, don't engage me on how to define THOSE words...)
Thank you, Nodar, for the only really insightful post of this whole discussion.
Up to a master's degree, "job-qualifying" seems to be pertinent. For a doctorate degree, however, it becomes very much less about checking a box than really exploring a particular discipline, in ways you cannot anticipate.
I got my DCS at age 40, primarily to explore a particular topic in software engineering, but also to credential myself for university teaching. Since, the teaching thing has gone to the ditch, between university politics and this push to do everything 'on-line', both not for me. I now work for a large aerospace company that has given me really good opportunities as a result of both my education and experience, but the work I'm currently doing only occasionally encounters my academic 'training'. Looking back, the doctorate was more about perspective-building than specific training or qualification for particular jobs.
My career experience just reinforces the only good career advice I've ever heard, from a Canadian Air Force major general: 1) do your current job the best you know how, and 2) as much as possible, take on the opportunities that come to you. I think #2 sometimes isn't fully appreciated, but the resume you'll build in practicing it is the single most valuable thing you'll ever acquire...