Blizej Unixa - skok z Pythona/Javy, do C przez C++

0

Szanowni Użytkownicy, witam serdecznie :)

nie wiem, czy lepiej tu czy w dziale o C/C++, ale spróbujmy.

Chciałbym zacząć programować w C natomiast na chwilę obecną uważam, że jestem bardziej obeznany w C++, oprócz tego jest jeszcze Python(średnio-zaawansowany) i Java(solidne podstawy). Chce się zbliżyć do UNIX'ow i tematu security. I tu powstaje moje pytanie:

1. Czy powinienem siadać do księgi i od nowa się uczyć ? Czy nie ma sensu tracić czasu i od razu praktyka?
2. Jeśli praktyka, to jakiego rodzaju oprogramowanie ma największa wartość dydaktyczna ? 

Chce pisać w systemach Unix-owych:) jaram się nimi, ale moja historia z C++ jest taka, ze uczyłem się go rok z książki S. Praty Szkoła programowania, ale od roku też go nie używałem - byłem zajęty Java i Pythonem. To była pierwsza księga, którą tak dokładnie przeczytałem i uważam że zrobiłem to naprawdę dobrze, nie mniej jednak brak praktyki obniżył znacznie moje skillsy i stałem się bardziej teoretykiem niż praktykiem, dziś nastał dzień zmian :) !

Chętnie wysłucham waszych doświadczeń, podpowiedzi, historii oraz wyciągnę z nich wnioski

2

Szanowny @pain368, czynię cię powitanym!

  1. Nie
  2. Największą wartość dydaktyczną ma oprogramowanie ukończone.
0
PerlMonk napisał(a):

Szanowny @pain368, czynię cię powitanym!

  1. Nie
  2. Największą wartość dydaktyczną ma oprogramowanie ukończone.

Lubie krótkie i zwięzłe odpowiedzi :D

0

1 Od razu praktyka do pierwszej ściany.
2 Takie które samemu się napisało. Niekoniecznie ukończone. Arcywartość osiąga takie oprogramowanie, które mimo, że nie ukończone jest wdrożone na produkcji.

title

0
somedev napisał(a):

1 Od razu praktyka do pierwszej ściany.
2 Takie które samemu się napisało. Niekoniecznie ukończone. Arcywartość osiąga takie oprogramowanie, które mimo, że nie ukończone jest wdrożone na produkcji.

Generalnie to mam pustkę , nie wiem co mógł bym napisać żeby było fajne ;). Jakiś pomysł ? Czego używa się teraz na produkcji ? Przejrzeć jakieś kody na Git Hubie ? Jakiś spoj ? A może od razu projektować łazika Marsjańskiego ;)

0

To zależy. Wszystko obecnie się pisze. Zarówno soft regulujący pracę hamulców w samochodach, API do kupowania dildo anonimowow przez sieć, fronty do LLVM, sterowniki, procesory tekstów, etc. etc. Pisze się wszystko - pytanie w czym chcesz się rozwijać?

0
somedev napisał(a):

To zależy. Wszystko obecnie się pisze. Zarówno soft regulujący pracę hamulców w samochodach, API do kupowania dildo anonimowow przez sieć, fronty do LLVM, sterowniki, procesory tekstów, etc. etc. Pisze się wszystko - pytanie w czym chcesz się rozwijać?

Bezpieczeństwo i Unix-y :) - moje marzenie :)

Rozwijałem się w różnych dziedzinach:

  • Zaczynałem od sieci komputerowych ( zrobiłem CCNA dla utrwalenia umiejętności i uporządkowania wszystkiego), analiza ruchu, konfiguracja :)
  • Administracja Linuxami
  • Programuje w Pythonie i w Baschu(kiedy trzeba)
  • Dobrze mi idzie code review (nie wiem czy to skill , czy raczej umiejętność pasywna) - tzn. jestem całkiem niezłym snajperem w wychwytywaniu literówek .. czasem myślę , że można to wykorzystać
  • Znam Technologie Webowe ( ale to nie mój konik )
  • Troszkę podupadłem ostatnio w budowie systemów operacyjnych ( zarządzeni pamięcią itp.), ale zamierzam to porządnie nadrobić
    edit:
    a no i C++ i Java
2

Napisz sobie własnego Apache HTTP Server. To generalnie będzie spory projekt ale co się nauczysz to Twoje. ;) Oczywiście nie zakładaj od razu, że rozbudujesz to do tego samego stopnia - zacznij od podstawowych funkcjonalności.

1

No to Cię zmartwię, bo spece od bezpieczeństwa wcale nie programują tak wiele. Większości to skrypty/programy narzędziowe do testowania systemów/softu. Generalnie dla inżyniera bezpieczeństwa im program starszy tym lepszy bo ma większą listę znanych bugów i podatności - program nowy to tabula rasa. Jeśli chcesz bawić się w UNIX'a to zrób fajne proste ćwiczenie, które sam kiedyś robiłem. Napisać w czystych X-ach program który będzie rysował w rogu pasek naładowania baterii. Masz tutaj programowanie w C, masz używanie bibliotek (Server X), masz Unix - musisz jakoś odczytać stan baterii, musisz znaleźć go w jakimś pliku. Jest to użyteczne. No i koniecznie obsłuż sygnały, że jak ktoś wyśle do tego procesu SIGQUIT to ładnie wyjdziesz i posprzątasz pamięć. Na pewno troszkę poznasz system, programowanie w C i da to Tobie obraz jak pisze się w C pod Unixem. Jak to ogarniesz to warto ogarnąć CMake lub Autotools, żeby generowało Tobie automatycznie .makefile. Autotoolsy jeszcze generują całą strukturę unuixową źródeł gdzie masz katalog /src /bin /man etc.

0

Przerób sobie książkę o programowaniu systemowym, na przykład Love'a

0
Spearhead napisał(a):

Przerób sobie książkę o programowaniu systemowym, na przykład Love'a

Tak się składa, że ja mam i wczoraj zacząłem czytać :)

2

https://www.amazon.co.uk/Programming-Environment-Addison-Wesley-Professional-Computing/dp/0321637739/ref=dp_ob_image_bk ta książka jest świetna do pracy z UNIX'ami w C. Jakbyś chciał do niej zajrzeć to traktuj ją raczej jako ściągę niż książkę, którą czyta się od deski do deski. ;)

https://www.amazon.com/Guide-Kernel-Exploitation-Attacking-Core/dp/1597494860 ta książka też może Cię zainteresować, ale to jeszcze nie na teraz. Jak już nabierzesz doświadczenia to możesz sobie przerabiać zawarte w niej przykłady

0

Ooo, nie znałem tych pozycji !! Bardzo Ci dziękuję ;)

0

O pany, do przyszłej zimy z domu nie wyjdę :D , chyba do Grecji się ewakuje ;) - jak już nie będzie środków na życie xD ( tam na drzewach przynajmniej mandarynki są)

1 użytkowników online, w tym zalogowanych: 0, gości: 1