Tag Results

26 posts tagged Feature

10 Tech Concepts Everyone Should Know

If you work in the tech industry then your daily conversations are littered with tech terms. You’ll probably have at least a vague idea of what these mean, but if you’re not in a technical role it’s sometimes hard to put these concepts and buzzwords in precise context.

In this post I’ll briefly explain ten basic terms that engineers use every day. Whatever your role in the tech industry, you’ll benefit from knowing exactly what these mean.

Brevity will require me to leave many important details out. If you’d like me to elaborate further, or if there are other concepts you’d like explained, let me know! I’ll be happy to write another post in this vein in the future.

Read More

Is a CS Degree Worth It?

As ReadWrite noted recently, learning how to code has never been hotter. Tech-education startups like Treehouse and Codeacademy are booming; Non-profits such as code.org are working to make programming education available in schools; Informal workshops abound, and more and more non-engineering tech industry insiders are getting in on the action.

Anyone with access to the internet now has within reach an incredible array of informal programming education resources, including many specifically targeted at women (a demographic still underrepresented in CS departments). With that, and the availability of simple web application frameworks such as Ruby on Rails, you  can learn to create basic but real webapps in just a few weeks. What was once the province of the nerdy few is now available to many. 

Read More

CS101 part 6: Operating Systems pt. 2


My previous CS101 post explained what operating systems are, and what services they provide. This post offers a quick tour through some basic operating systems concepts, and explains in more detail how the OS provides certain services.

I’ll describe in turn how the OS manages each of the four basic resources: CPU, disk, memory and network. You’ll probably have heard of some of the concepts before, but not known exactly what they referred to. So now you’ll know!

Read More

CS101 part 5: Operating Systems (pt. 1)

It’s been a while, but CS101 now resumes… 

In a previous post I mentioned that modern computer systems consist of layer upon layer of increasingly complex building blocks. In this post I’ll talk briefly about the most basic of these building blocks: the operating system. 

An operating system (OS) is a piece of software that provides a set of common services to all the other software running on a computer. These services primarily involve managing shared resources, notably CPU, disk, memory and network. 

Two classes of OS dominate the desktop world: Microsoft Windows, and UNIX-like OSes. UNIX was an OS originally developed over 40 years ago at Bell Labs. It inspired a host of descendants, and its design lives on to this day, including in popular OSes such as Linux, FreeBSD and Mac OS X.

Why are OS services important? For two main reasons: interface and coordination.

Read More

Respecting Failure

Alexia Tsotsis just published an important post on TechCrunch about an insidious side of startup culture, one she refers to as “the cult of success”. 

In the startup world we pay lip service to risk all the time. No concept is more hallowed or hyped in Silicon Valley than “entrepreneurship”, and the defining feature of entrepreneurship is risk. 

You Can’t Spell Risk Without Failure

Risk, by definition, implies frequent failure. Yet while we recognize the value of failure in principle, when presented with an individual instance of it, one involving a specific startup and actual people, we too often respond with snark and schadenfreude. TechCrunch, and the rest of the tech press, are not immune from this, as Alexia admits. Too often, how the ups and downs of a startup get covered depends more on how close the founders and investors are to the “cool kids” rather than on the merits or the long view.

What’s an appropriate response to failure, then? Should we celebrate it, as we do success?

Read More

CS101 part 4: Software

You suffered admirably through my necessary but dense preliminary discussions of boolean logic, binary arithmetic and memory hierarchy. Now comes the payoff - a series of posts about things you’ve actually heard of. First up: software.

I’m sure you have at least a rough idea of what hardware and software are. In fact, if you’re reading this, you probably know a lot of people who write software for a living. But you may be wondering what it means to “write software” or “run a program”. Or you may still marvel at how it is that we can make a pile of electronic circuits into some magical device that can show us pictures of kittens on skateboards.  Read on to find out more!

Read More

Depression and the Highly Logical Mind

I was saddened to learn of the tragic death, by his own hand, of Aaron Swartz. That a prominent member of my community, our community, the tech community, is gone forever is sad. That he was lost so young is tragic. That he took his own life is a horror.

Aaron Swartz wrote openly about having depression (I don’t like to use “depressed” as an adjective; It’s a disease that you have, not a thing that you are.) And many of the outpourings of grief and support after his death recognized in it a shared experience. The relatability of Aaron’s struggle made the tech world feel even more like a community, as it did after Ilya Zhitomirskiy’s tragic suicide in 2011. For, while depression is dreadful for anyone, it may have a uniquely pernicious effect on highly logical minds.

Read More

CS101 part 3: Memory

In my first two CS101 posts (here and here) we discussed the basic electronic circuits used to compute logic conditions and basic arithmetic. At the end of my last post I alluded to a third element we need before we can construct something worth calling a ‘computer’. That element is memory.

Memory gives us the ability to have the current computation be influenced by the result of past computation. It’s what allows us to compose sequences of basic operations to produce ad-hoc, complex computations. These sequences of instructions are called programs.

Read More

Growth, Jobs and Silicon Valley

A non-technical, political post today (I did warn readers there would be some).

The overriding theme of the upcoming presidential election is jobs, with the candidates sparring aggressively over who can create more of them. Unemployment is still high across the country, and finding work, especially if you’re a new college grad, is a daunting challenge. 

And yet here in Silicon Valley companies can’t hire fast enough. If you’re a new CS grad you’ll have no trouble at all getting several job offers to choose from. Your starting salary, on day one of your career, might be higher than the current salary of either of your parents. And if you’re an experienced engineer, designer or product manager then the sky is pretty much the limit. 

This raises tempting questions: Can the presidential candidates learn from Silicon Valley’s success? Does the tech industry point the way towards a nationwide economic renaissance of job growth?  Is what’s good for startups good for America? And if so, do the political endorsements of tech luminaries carry extra weight?

Read More

Hashing Redux: Proving What You Know

Remember my post about hashing passwords? I recently encountered a tweet exchange between two of my co-workers that used hashing in a novel and nerdy way. 

It started with this:

image

Jorge is posting a quote from Minnesota congresswoman and amateur conspiracy theorist Michelle Bachmann, helpfully providing a link to the source. But he’s also added a mysterious string of letters and numbers in parentheses. Why? Let’s find out.

Read More