Since a few people on this thread are talking about wanting to do board design without prior EE experience I decided to top-post this rather than post individual replies.

This has come-up on HN a few times. As an EE with plenty of experience designing all manner of hardware I'll tell you that, while not impossible, there's quite a road to travel from having no formal training in electronics to designing and laying out reliable working boards. Not to say it can't be done. Anyone with enough drive and motivation these days can learn almost anything with the myriad of resources out there. Possible? Yes. Plausible? Only for the really driven.

There's a demarcation line somewhere in the 25 to 50 MHz range beyond which the design of digital electronics isn't very tolerant of amateur design practices. You really start to need a solid understanding of the underlying science. Unlike software development, it is frustrating and expensive to blindly poke around mid to high speed design in hopes of finding a solution.

Digital circuits in many ways become very analog as frequency increases and clock edges get sharper. They can and do radiate RF and they can and do bounce around the copper traces mucking things up if either the electrical design or the trace layout and board stack-upare off.

Something as seemingly "simple" (in quotes because it isn't simple) as implementing a DDR2 or DDR3 memory interface requires quite a range of information in your mental design database.

For example, you need to start to consider the time it takes for signals to leave the FPGA (travelling at nearly the speed of light) and arrive at the chip. These signals must arrive within a very precise window of acceptance. A window which is measured in nanoseconds. You need to model the signal path from the die through the interconnect, BGA ball, land and via stack, trace and then back up the chain into the memory chip. And you need to do this for every single connection.

While you do the above you also need to look after the integrity of the signals themselves. In fact there's a discipline called "Signal Integrity" (SI) that deals with this. Most large companies have dedicated Signal Integrity engineers. The field is somewhat complex and requires a good deal of experience and study, particularly for mass production. Anyhow, at higher speeds everything is a transmission line. Failing to design with this in mind pretty much guarantees that a circuit that looks absolutely perfect on paper will not work.

SI has a close cousin called "Power Integrity". As operating frequencies increase and signal edges become sharper the power distribution system (PDS) becomes very critical. Once again, not understanding the subject can result on a board that looks great but does not work, or worst, is hopelessly unreliable. PDS design issues can cause resonance and oscillations on the power planes, increase clock jitter, destroy signal integrity and timing and more. This too is a subject that is usually the domain of specialists in larger organizations.

SI and PDS design alone can mean that you can have a schematic that looks absolutely perfect and a circuit board that does not work, is unreliable or has a "personality" such as weird things happening, random resets and other hair-pulling afflictions. SI and PDS design knowledge is of paramount importance as design operating frequencies rise.

That's not the end of it. Digital design with FPGA's also needs to consider such topics as the number of average simultaneous outputs switching per side/bank on the device. This has both SI and PDS implications.

As you approach the GHz range things get even more interesting. Examples of this might be doing HDMI or DVI transmitter/receiver designs or Thunderbolt/PCIe interconnects. Now you are solidly in RF territory, a land with it's own set of voodoo to learn.

As I said above, I draw this imaginary demarcation line somewhere in the 25 to 50 MHz range. Below this line one can hack around and build stuff that works well or reasonably well most of the time. I'll generalize and say that's the Arduino and below territory, the hobby embedded territory. Nothing too critical. Timing windows are comfortable. SI issues are relatively minimal. SSO is mostly not of concern. Transmission line or impedance controlled design is rarely needed, etc.

The minute you start talking about something like a laptop board or high performance FPGA based, well, anything, you enter a domain that is either reserved for very experienced EE's or requires a ton of time and dedication to master as a non-EE. This is also a domain where hobbyist tools tend to fail miserably. I use Altium Designer for electronic design along with FEA tools for SI and PDS designs on high speed boars. I also use a number of custom software tools created over time in order to simplify and facilitate the process. Most companies or designers develop guidelines, rules, tools and procedures over the years in order to improve design yields. Like I said, a perfect schematic does not directly equate to a working board.

I haven't even covered topics such as thermal design and regulatory testing. That's a whole other layer of knowledge that is critical to have depending on what you are doing.

Making hardware is very different from writing software in that the iterations per unit time are both slower and very costly. You can sit in front of your computer and hack for hours and hours, fail, edit, compile, learn and it costs nothing. Not so with hardware. You really can't learn that way. Even if you had money to burn, at one point you really need to understand the science behind it all in order to not burn cubic time learning by trial and error.

Even freshly graduated EE's are not necessarily qualified to successfully approach high-speed design. It takes years of learning and dedication beyond school to really master the art. This is not a matter of software. Even if I gave you a license to $100K worth of EE design software (yes, it can get that expensive) and fully trained you on it's use you would not be prepared to design high speed boards with it.

Again, none of this is to say this is an impossible domain for non-EE's to approach. Just pointing out that it is an iceberg. What you see is what's visible above the surface.

Where to start? College Physics and Calculus. Basic Electronics. Transistors. AC, DC and RF Circuit theory. Buy kits and breadboard-based trainers and build circuits. Make lots of boards. Learn. Look at the set of courses required for an EE degree and learn as much of that as you can (and in the order they are presented). Reading books about signal integrity right now without the required foundation isn't a good idea. It's like trying to read a Chinese book on Chinese literature without having learned the Chinese language first.

Good luck.