Thinking about turning your hobby or project into a business? Ask yourself:
- Who wants it? What makes it better than the alternatives?
- How will people hear about it? A great product is useless if no one knows it exists.
- How will it make money?
Thinking about turning your hobby or project into a business? Ask yourself:
I am helping an undergraduate team with their Teknofest Fighter UAV Competition. The most difficult technical challenge is autonomously detecting and following other fixed-wing UAVs in the air. Teams must use a single stationary camera—no gimbals are allowed [Specification 6.1].
My first piece of advice to the team was to set realistic expectations and define intermediate success metrics, so that regardless of the final outcome, they can feel good about their progress. Last year's winning team was established in 2017 and reused a UAV they had been improving since 2020, which shows that having a realistic chance of winning requires several years of preparation.The domains in which you need to be knowledgeable include:
Mastering all of these domains is beyond the capability of any undergraduate team. Fortunately, systems like Pixhawk Cube Orange and PX4 Autopilot handle autonomous flight, NVIDIA Jetson series can handle object detection, and ready-made airframes like the X-UAV Talon reduce the production burden. This allows the team to focus on UAV-ground communications, tracking the target UAV in the video feed and generating appropriate guidance commands for their own UAV to follow it.
In light of all the above, here are my suggested success metrics:
Below you can see memory and storage latencies and their corresponding analogies. For example, a cache miss that triggers a memory access from RAM, is about 100 times slower than the L1 cache. A skilled engineer can make an app run at supersonic speed instead of at a snail's pace — often the difference between a popular app and a dead one.
Component |
Latency |
Order |
Metaphorical Speed |
|
CPU Register |
~0.5 ns |
1 |
🚀 3,600 km/h Supersonic jet |
|
L1 Cache |
~1 ns |
1 |
✈️ 1,800 km/h Commercial jet |
|
L2/L3 Cache |
~ 5 ns |
10 |
🚅 360 km/h High speed train |
|
RAM (DRAM) |
~100 ns |
100 |
🛵 18 km/h Scooter |
|
Flash (NOR) |
~10 µs |
10⁴ |
🐢 0.18 km/h Tortoise |
|
NVMe SSD |
~50 µs |
10⁵ |
🐌 0.036 km/h Snail |
Engineering students often ask, 'Would doing a minor or double major benefit my career?' My answer is that pursuing a minor or double major is a demanding process. Instead, by working on projects related to your field of study, you can achieve much greater benefits with less effort.
I primarily write unit tests for the following reasons:
Yesterday, we had a discussion with software engineering colleagues about Bitcoin and other tech trends. I was asked for my opinion on a current trend that could be profitable to get into. Unsurprisingly, I said AI. By itself, this advice is too vague to be helpful, so I gave a more concrete example: using AI to transform the user interface of apps from menu-based to speech-based. I also pointed them to my Python script that demonstrates the basics of this concept.
As someone who was introduced to computers in the 1980s with the Commodore 64, I have witnessed the rise of Windows, the internet, web apps, mobile apps, and cryptocurrency. This shift toward AI is similar to—and even more dramatic than—when companies started moving to the web during the early days of the internet.
I understand that creating a new AI model requires billions of dollars and years of research. But the good news is that many of these models provide APIs, which makes them accessible to us mere mortals. We just need to understand a few key concepts, such as:
As a software engineer, you already possess the most important skills: algorithms, data structures, and programming languages. By spending just a couple of weeks on basic AI topics, you can add another superpower to your skill set. I, for one, will definitely be doing so.
Music: Barış Manço - Şehrazat
First of all, congratulations on choosing computer engineering as your profession. It’s a challenging field, especially if you currently have limited programming experience. Throughout your studies, you’ll often find yourself juggling at least three demanding courses simultaneously, leaving little time to fully digest the material. You’ll have to move quickly from one assignment or exam to the next, so it’s wise to prepare in advance. Read the blog of one of my computer engineering students to get an idea.
To begin with, it helps to understand the "superpowers" you gain with a computer engineering degree and what they can be used for. No, it’s not just about mobile or web applications. It is applied mathematics. At its core, computer engineering is about solving complex problems with an optimal balance of speed and computer memory usage. For instance, if you can perform a task 40,000 times faster, that’s the difference between the blink of an eye and an hour, or having a popular product or a product no one is using. I recommend the following resources:
If you're having trouble understanding the English in the videos, try watching them at 0.5x speed with captions enabled. You can also use Duolingo to boost your English.
During your holidays, spend a couple of weeks familiarizing yourself with key concepts and gaining the ability to solve simple programming problems. This way, during the semester, you’ll only need to focus on understanding the problems themselves, rather than struggling with basic tasks like how to use a compiler or mastering programming language syntax. Follow CS50x 2024, which covers many computer science/engineering topics. Keep in mind that you’ll need to dedicate at least 20 hours per week to solve the problems in this course.
By laying a solid foundation now, you’ll set yourself up for success in your studies and beyond. Remember, the journey of becoming a computer engineer is demanding but very rewarding. Stay curious, keep challenging yourself, and don't hesitate to seek help when needed. Document your progress and the lessons you learn in a blog. Your dedication and hard work will pay off as you acquire the skills to create innovative solutions. Best of luck on your exciting journey into the world of computer engineering!
Music: Vivaldi's Four Seasons: Summer - Epic Trailer Version