You don’t own the money you deposit in the banks, the banks do. Through the act of depositing you are lending the banks your money, therefore it’s not your money anymore. They can default on the loan.
I understand that the box reflects the file changes, however that does not really help me.
I need an Linux Dev environment, that includes all the tools for emacs. I used to just live in the VM, but current performance is terrible, so I'm trying to see what my options are with just connecting to the VM from the host and editing from the host. That means though that all the tools are on the VM (REPL, etc) so I need to find a way to connect running emacs instance in the VM
I heard that the 4k versions get 5, 6 hours at best of battery life, which is what's stopping me from buying one. Have you had a better experience? This is doing dev work.
You should at least reference the fact that with MySQL, the server has to step through OFFSET result rows before it can start streaming you data. This can get surprisingly expensive, surprisingly quickly. See http://stackoverflow.com/questions/4481388/why-does-mysql-hi...
Bozhidar Batsov just recently did a podcast with Cognitect where they speak about this and other things related to Slime and the Clojure programming environment:
I worked as a laborer in my eary twenties in Scotland and they have an apprenticeship system as well for trades like plumbing, masonry, and joinery (carpentry). 6 months in the classroom and 6 months apprenticed to a master.
Software Engineering seems to be moving in this direction but I think this is applicable to almost all fields of study.
The German system has multiple tiers, the lowest degree can be reached after 3 years or 2 years in some cases for high-school graduates. To get the degree you have to pass a test. After that you can get some additional degrees and/or pass the test to be a Meister, which is quite costly. In the past you had to have several years of work experience to apply to a Meister exam, but now you can visit schools, too.
In some professions you are not allowed to start a business if you do not have the Meister. As a Meister you are now able to train other people doing their apprenticeship and are allowed to study within your field at a university, usually to be an engineer instead of a craftsman. So technically you could get a Phd without having finished school (very unlikely).
Growing up in the Philippines, this is how we used to drink, one guy fills the glass with booze, then passes it down to the next guy in line, who chugs it down then passes it back to have it refilled.
Same glass, same amount of booze, same order in the rounds. Wonder if it's an indio+Spaniard thing? I haven't seen this anywhere else in Asia.
I have a 2nd gen. X1, (the one without the dedicated function keys) and run Arch on it. It's my Dev and play machine, no problems whatsoever and the 2560x1440 screen is addicting. Can't imagine going back to something with less DPI.
Actually I'd argue that there are quite a few things that programmers should have in common, if by programmers we're talking about serious engineers/computer scientis[1] and not "amateur-hour web designers"[2].
Knowledge of the fundamental concepts talked about on that list of papers, and the history therewith, is what allows us to go past the current level of engineering and actually reach greater heights. Most of the emphasis nowadays is spent on knowledge of specific toolchains, frameworks, etc, instead of actually learning WHY and HOW these things work.
From that basic foundation you can then go into any field and learn the semantics, details, and problem-specific techniques to deal with the problems presented. Without that foundation, we're all just floundering around, becoming proficient in using these tools without actually KNOWING how they work and therefore unable to take them to the next level.
Perhaps you're confused. Most people who refer to themselves as "web designers" aren't meant to be or and aren't trying to be computer scientists or engineers. Many of them have a graphics design education, or taken inspiration from that tradition. Some of the more technically-minded of them can do basic coding, but most of them stop at HTML and CSS. But they're better than I am at UI/UX, and visual design, because that's what they do. They're not meant to be computer scientists.
If you mean web-application developers, however, I'd urge you to take a look at some of the stuff that is being done on the front-end these days. (not to mention the fact that this blog post was written by a Javascript expert)
Yes, there are some people who have drifted into their jobs and are little more than cargo cultists, although some of the more talented and curious of them do make the upgrade to serious professionals. But by far, most of the people I've worked with recently on front-end jobs have had a rigorous computer science education, with an excellent knowledge of data structures, algorithms, software engineering, and computer architecture. The fact that they're working on the front-end, in Javascript, is incidental. In their spare time, and if they're lucky, on some in-house stuff, they might prefer working in Haskell, or maybe Clojure. But much like C in past decades, the web is ubiquitous, and any serious developer of this era must know how to work in it. We don't all have the privilege of getting paid to write Scheme.
But I do share your opinion that there are certain foundational concepts and knowledge that all professional programmers should have in common, including some of the papers referenced.
Perhaps the comment came out wrong, let me try to be a little clearer.
I'm not trying to create separate categories between front-end, back-end, desktop, CLI, and systems engineers. The distinction I am trying to make though is that yes, while Computing has become a vast field, there simply are some basic fundamental skills that are absolutely required if we want to go beyond our current level of achievement.
These are things that you have mentioned: deep knowledge of algorithms, data structures, software engineering, computer architecture, etc. This is absolutely the MINIMUM requirement Without understanding these things, we will stay at this present level of software engineering forever. Sure we will have mastered the tools, and the current programming-paradigms that these tools teach us, but we will not be able to advance.
Whether one programs in JavaScript, Forth, Common Lisp, or even BASIC isn't the issue. The point that Fogus's post is trying to get across, or at least what I have taken away from it, is that most "serious" programmers are incredibly lacking in what is considered basic foundational knowledge. What field one specializes in is irrelevant, there is just some stuff that everyone has to understand, not necessarily in the way that a specialist in the field does, but at least have more than passing, cursory knowledge of it.
I started programming seventeen years ago as an "amateur-hour web designer". This sort of attitude is not productive or helpful to our rapidly-growing industry.
I've learnt from various sources, but none of them were papers. There is no one-size-fits-all teaching or learning method. And rudeness and insults are going to make people less likely to learn, not more.
Is that not because, at the time, you were much more of a beginner than you are now?
I've been studying Computer Science for the last four years (BSc and now MSc) but was coding for maybe three years before that.
Back then I was learning JavaScript and PHP from w3schools, PHP.net and some blogs. I built a framework from reading the source code for CodeIgniter. I learn't a lot about object orientated design, or the lack thereof, in that project.
By the time I finished 2nd year of Comp Sci I had a pretty good understanding of algorithms, design patterns, some theory (Petri-nets, state machines, etc..), databases, etc. Going into my MSc, there is quite a lot that you can't learn without reading papers. For example, chances are you are going to have no idea how to solve the consensus problem in a distributed system without reading Paxos.
I tried to read the Paxos paper and gave up. The Raft paper I probably could've understood, but I found it easier to understand by looking at an implementation and a less formal description of it. I don't think it's about what you know (plenty of papers have few prerequisites and are conceptually quite simple).
I've been writing software for 20/years, and had I learned the concepts brought forth in these papers years ago, I would have been much better. Hacking is not writing software.
https://leanpub.com/progalgs/read#leanpub-auto-data-structur...
Or a book like Barski’s Land of Lisp
https://www.amazon.com/Land-Lisp-Learn-Program-Game/dp/15932...
I would start with Common Lisp.