Moje zajęcia programistyczne w szkole to C ++, ale skończyłem pracę w C # przez ostatnie kilka lat. Gdyby istniało stanowisko wymagające powiedzenia 1 lub 2 lata doświadczenia w C ++, czy moje doświadczenie w C # byłoby warte rozważenia? Jak skuteczna mogłabym być w takiej sytuacji? Czy muszę więc zacząć jako programista C ++ na poziomie podstawowym, aby uzyskać niezbędne doświadczenie?
c#
c++
experience
MetaGuru
źródło
źródło
Odpowiedzi:
Problem polega na tym, że C ++ i C # są zasadniczo bardzo różnymi językami z różnymi podejściami do wielu problemów. Łatwo jest dodać je jako „język OO”, ale prosty fakt jest taki, że wiele idiomów C # jest uważanych za bardzo zły kod w C ++ (i odwrotnie).
Jeśli faktycznie znasz różnice i jak wyglądają idiomy C ++, to nie widzę powodu, dla którego nie powinno być dobrze.
źródło
Byłem na tej samej łodzi około 2 lata temu. Twoje doświadczenie w c # prawdopodobnie nie byłoby warte tyle samo dla zadania c ++, jak c ++ dla zadania ac #. To powiedziawszy, jeśli wiesz, jak faktycznie działa c # (bardzo niewielu programistów c # faktycznie to robi) i dobrze nauczyłeś się swojego c ++, to c ++ nie będzie problemem. Problemem będzie sposób, w jaki przyzwyczaiłeś się do pewnych wzorców projektowych, które będą zbyt wysokie dla c ++.
Na przykład przejście od ładnego modelu dostępu do danych ADO.NET do użycia cppcon dla dostępu mysql, System.Collections.Generic do użycia stl, wielokrotnego dziedziczenia, odśmiecania pamięci do czyszczenia pamięci w destruktorach i tak dalej ... wszystkie mają tendencję być trudnymi przejściami. C ++ nie jest problemem, uczenie się bibliotek, wzorców projektowych i jak z nich korzystać jest wyzwaniem. Większość osób rekrutujących nie zdaje sobie z tego sprawy. Jeśli potrafisz wykonać podstawowy projekt i umiesz korzystać z faktycznie powszechnie używanych funkcji c ++, powinieneś być w porządku w wywiadzie.
Jednak gotowość do pracy to inna historia. To zabawne wyzwanie, mam nadzieję, że wszystko pójdzie dobrze.
źródło
Nie mogę mówić za każdego pracodawcę, ale osobiście uważam programowanie za umiejętność i specyfikę języka za miłą. Wciąż możliwe jest zatrudnienie w innej pracy programistycznej, która nie jest twoją główną umiejętnością.
Powiedziawszy, że jest to bardzo mało prawdopodobne, zatrudnię kogoś, kto absolutnie nie ma doświadczenia w języku, dla którego go zatrudniam. Poświęć kilka weekendów na naukę i poproś o kilka domowych projektów, aby wzmocnić swoje CV. Nawet małe dowodzą, że potrafisz się uczyć i chętnie.
źródło
Jesteś dokładnie w takiej samej sytuacji, w jakiej byłem 4 lata temu.
Podczas studiów zrobiłem trochę C ++, ale nienawidziłem tego. Zrobiłem dużo web dev, kiedy mogłem w wolnym czasie i dostać pracę w tej dziedzinie.
Kiedy się przeprowadziłem, ubiegałem się o pracę w C ++, która wymagała 2-letniego doświadczenia w C ++. Cóż, odświeżyłem swoje wspomnienia z C ++ przed wywiadem, a kiedy nadszedł czas na testy, udało mi się uciec od kilku rzeczy, nie byłem pewien, czy wszystko idzie dobrze.
Ale większość wywiadu dotyczyła rozwiązywania problemów i kreatywnych rozwiązań, a C ++ przestało być tylko drobnym czynnikiem.
Tak więc szanse naprawdę zależą od pracodawcy i zajmowanych przez niego stanowisk.
Jeśli przechodzisz przez agencję rekrutacyjną, „prawdopodobnie” dowiesz się, że Twój profil nie pasuje. Ale u prawdziwego pracodawcy masz większe szanse, ponieważ naprawdę wiedzą, czego potrzebują.
źródło
To zależy. Jeśli potrafisz odpowiedzieć na kilka podstawowych pytań na temat wywiadów dotyczących wskaźników i tym podobne, nie powinno być problemu.
Korzystne jest również, jeśli możesz wymienić różnice między szablonami C ++ a rodzajami .NET.
Poza tym dość łatwo jest nadrobić zaległości w trakcie podróży.
źródło
Tak. To może nie być tak istotne jak C ++, ale jest dobre.
Dobrzy pracodawcy będą zainteresowani tym, jak myślisz , bardziej niż liczbą lat określonego języka.
Podstawowa pozycja w C ++ jest w porządku: możesz uczyć się szybko i wykonywać świetną robotę. Dobra firma da ci wiele możliwości rozwoju. Jeśli nie, możesz pójść gdzie indziej i mieć doświadczenie zarówno w C #, jak i C ++.
źródło
To naprawdę zależy od charakteru firmy, do której aplikujesz. Jeśli szukają kogoś, kto ma dobre umiejętności programowania i architektury w oparciu o OO, C # jest prawdopodobnie równie dobry, jak następna rzecz.
Jeśli są dumni z szybkości / czasu reakcji swojego oprogramowania, musisz znać swoje algorytmy, ponieważ jest to ważniejsze niż mikrooptymalizacje - tabele skrótów w porównaniu do wyszukiwania liniowego itp. C # jest nadal istotny, ale potrzebujesz w celu wykazania zrozumienia charakterystyki wydajności - nie wszyscy wiedzą na przykład o ngen.exe.
Jeśli znajdują się w środowisku osadzonym / mobilnym i / lub niezbierającym śmieci, naprawdę musisz wiedzieć, jak skutecznie zarządzać pamięcią. Kluczowe znaczenie mają tutaj inteligentne wskaźniki, jak wskazał @DeadMG, ale rozumie także profil alokacji pamięci. Programiści gier często wstępnie przydzielają duże tablice obiektów i poddają je recyklingowi, aby poznać z góry wymagania dotyczące pamięci i zmniejszyć liczbę niewiadomych dla poszczególnych klatek. Jest to również technika stosowana w przewijaniu TableViews w iOS.
Jeśli są jakieś prace integracyjne, prawdopodobnie potrzebujesz specjalistycznej wiedzy na poziomie C w zakresie zestawiania danych między językami (np. P / Invoke), ale także zrozumienia na poziomie bajtów, w jaki sposób można wykorzystać te struktury danych, co nie jest powszechną praktyką w C # z mojego doświadczenia.
źródło