Od dłuższego czasu ćwiczę kodowanie, ale problem polega na tym, że napisanie rozwiązania problemów zajmuje mi dużo czasu. Chcę zapytać, czy programowanie konkurencyjne może mi pomóc w ulepszeniu tego.
Jeśli tak, to jak mam zacząć i od jakich stron internetowych mogę korzystać (np. TopCoder )? Na razie nie będę w stanie rozwiązać bardzo trudnych problemów. Co powinienem zrobić?
Jeśli nie, co jeszcze powinienem zrobić?
Mam też inny problem, który chcę nauczyć się kodować, ale chodzi o to, że czuję, że nie jestem w tym zbyt dobry. Co powinienem zrobić? To jak wkurzanie mnie od środka.
Wiem, że niektórzy ludzie mogą nie uznać tego pytania za informacyjne, ale proszę pozwolić mi przynajmniej uzyskać odpowiedź.
programming-practices
self-improvement
Vaibhav Agarwal
źródło
źródło
Odpowiedzi:
Tak, i przy wystarczającym czasie na pewno tak będzie. Szybkość nie jest jednak najważniejszą umiejętnością, którą zamierzasz poprawić. Z mojego doświadczenia z uczestnictwem w TopCoderze od ponad 10 lat najważniejszą umiejętnością, którą zamierzasz wziąć z konkurencyjnego programowania, jest umiejętność poprawnego pisania prostych fragmentów kodu za pierwszym razem, bez korzystania z debuggera.
Skorzystaj z sal treningowych dla Oddziału 2. Poziom 1 w Oddziale 2 to zazwyczaj „konkursy na pisanie na klawiaturze”, w tym sensie, że od razu wymyślisz rozwiązanie, dzięki czemu zadanie zaczniesz go kodować tak szybko, jak to możliwe. Większość rzeczywistych zadań jest taka. Szybko zorientujesz się, że debugger jest największym „odpływem czasu”, więc naturalnie spróbujesz ukończyć swój kod bez debugowania. Na początku będzie to frustrujące, ale z czasem ulegnie poprawie. Potrzeba kilkuset problemów na poziomie 1, aby być w tym dobrym, więc nie poddawaj się.
Debugowanie w głowie to umiejętność, która pomoże ci w prawdziwej pracy: chociaż szybkość kodowania nie jest ważna, umiejętność pisania poprawnych fragmentów kodu bez debugowania pomoże ci przejść od dobrego do wyjątkowego.
źródło
Jako początkujący programista powinieneś bardziej przejmować się jakością kodu niż szybkością jego pisania. Powinieneś sam pracować nad projektami, aby poszerzyć swoje umiejętności. Możesz to zrobić po przejrzeniu projektów typu open source, aby zobaczyć, jak inni piszą kod i być może zacząć wnosić wkład w projekt typu open source.
Przez ponad 25 lat rozwoju kodu na różnych platformach i domenach biznesowych nigdy nie znalazłem przypadku, w którym szybkość pisania kodu byłaby ważniejsza niż jakość i stabilność mojego kodu.
źródło