Ok, więc oto mój problem:
Pracuję dla dużej firmy, niektórzy jak dostali pracę (szczerze mówiąc, ponieważ rozmowa była łatwa). Nie chodzi o to, że nie znam swoich rzeczy, jestem całkiem dobry w zrozumieniu języka Java, to biblioteki itp.
Ale kiedy próbuję rozwiązać jakiś problem logiczny, naprawdę trudno mi znaleźć rozwiązanie.
Na przykład, conversion of decimal to roman
kiedy zobaczyłem rozwiązanie, stwierdziłem, że jest to prosty problem. Ale nie byłem w stanie go wdrożyć po 1-2 godzinach prób!
Czuję się głupia i nie warto być inżynierem oprogramowania. Umiejętności rozwiązywania łamigłówek powinny przyjść natywnie do świetnego programisty. Ale kiedy próbuję rozwiązać niektóre zagadki, nie jestem w stanie znaleźć rozwiązania i po prostu google go w górę! .... i nienawidzę tego!
Kiedy pojawia mi się problem (jak implementacja funkcji xyz) w pracy, jestem dość szybki i szanuję go w tym miejscu pracy, ale wcale nie jestem z tego dumny. Ponieważ, gdy próbuję rozwiązać jakiś matematyczny lub logiczny, trudny problem, grzebię się. Nadal czuję, że uwielbiam to, co robię (jako inżynier), ale bardzo mi przykro, że nie jestem w stanie rozwiązać trudnych problemów logicznych, które wymyślili moi przyjaciele.
Czuję się zdemoralizowany :(
TL; DR: Rozumiem rzeczy z praktycznego punktu widzenia (wdrażanie funkcji w naszym produkcie), ale kiedy próbuję pracować nad problemem z powiedzmy ProjectEuler, źle SUCK! I muszę wyostrzyć swój mózg!
Tak więc moje pytania to:
- Jak powinienem to naprawić? Czy powinienem zacząć od rozwiązywania (i zmuszania się do) projektowania problemów eulera? Nawet jeśli zajmie mi kilka godzin, aby rozwiązać niektóre podstawowe problemy ?
- Czy powinienem wrócić do podstaw i uczyć się podstawowych matematyki?
- Naprawdę nie lubię układania puzzli. Ale chcę sprawić, by było to dla mnie zabawą! I myślę, że jeśli lepiej je zrozumiem, spodoba mi się!
PS: Nigdy nie kształciłem się w CS (mój student był elektrykiem). Ale to nie usprawiedliwia bycia szczęśliwym programistą.
Dzięki!