Напоследък научих нещо за това какво означава да си добър софтуерен инженер.

Има разлика между това да сте запознати с компютрите и езиците за програмиране и да можете да използвате тези знания за решаване на сложни проблеми.

Може да сте добре запознати с множество езици и може дори да сте запознати с вътрешната работа на компютъра, но може да не сте подготвени да решавате сложни проблеми. Точно както може би познавате добре правилата на шаха, но това не говори нищо за способността ви да печелите игри. Точно както познаването на правилата е даденост, изучаването на компютърни науки е важно, ако искате да решавате сложни проблеми на софтуерното инженерство.

Тези две умения, макар и много взаимосвързани и често обединени като едно, са различни и полезни за разграничаване. Колкото по-рано осъзнаем разликата, толкова по-скоро можем да запретнем ръкави и да станем добри в решаването на сложни проблеми.