um bom programador conhece algumas linguagens.
por exemplo, se o seu objetivo é segurança ou redes, C é uma excelente escolha. mas pode ser que vc patine um pouco pq são exemplos onde vc escreve muito e tem varias magicas q ninguem explica direito ( como as macros, e coisas especificas de interfaces como POSIX ).
Python, Ruby ou Perl são excelentes para vc fazer um programinha e testar uma coisa nova, por exemplo, fora a imensa biblioteca de codigo disponivel e facil de instalar ( Perl tem o cpan que é um repositorio abissal de projetos, por exemplo ). e vc nao precisa dominar OO ( vc pode começar com um estilo procedural e ir refinando aos poucos.
se vc quer aprender, pegue um livro de programação de redes e faça aqueles exemplos de cliente/servidor tcp/udp e depois brinque com non-blocking IO e muito mais.
para aprender e resolver desafios eu indico a plataforma https://www.hackerrank.com/
é essencial que vc busque amigos programadores, entre em listas, foruns, tenha seus projetinhos, explore codigos e fuce bastante. Linux é uma excelente plataforma para entender redes, sistemas operacionais, etc. com o tempo vc estara respondendo duvidas e isso mostra q vc esta no caminho.
esse ramo de segurança possui provas de certificação, assim como redes, pode ser interessante vc correr atras disso ( ja aviso o custo de um CCNA pode ser alto, portanto veja se é isso que vc quer e se o conteudo te interessa, afinal se vc nao for configurar roteador cisto isso sera inutil ).
estudar para uma certificação te prepara para algumas coisas e pode ser melhor que fazer a prova em si.