Sistema e programas por todos os lados ?!qual o dá Bilhetagem Eletrônica?

Olá amigos ! Atualmente estudando Programação ,venho percebendo que ela está por todos os lados .
Foi então que comecei a tentar entender como são criados os Sistemas ,os Programas,…etc
Para tentar entender melhor tudo isso ,resolvi pegar como exemplo a Bilhetagem Eletrônica “
Gostaria de saber como é feita a leitura dos cartões de transporte ,como funciona o sistema que faz a leitura de tal.
Ressalto que minha intenção não é detalhar Tal sistema mais sim entender melhor o conceito de criação de sistemas e programas para todos os fins.
Como disse estou estudando Ciências da Computação ,veio me interessando muito pelo mundo de Programação e creio que entender melhor como funciona tudo isso vai me ajudar muito.
Não vejo ninguém melhor que vocês aqui do fórum para me ajudar a compreender tudo isso ,mas como alguns orientam primeiro pra que se faça uma pesquisa, tentei pesquisar no Google,algo do tipo mais não consegui encontrar um conteúdo realmente explicativo para Tal assunto.
O que quero resumidamente é entender como são criados os Sistemas ,ou tal programa X ,se suas linhas de códigos são disponíveis ou apenas os criadores tem o acesso.Se existe linguagens específicas para criação do Software especifico ou depende apenas do programador decidir.
Bom acho que já falei de mais né…Se puderem me ajudar ficarei grato pois sou leigo ,contudo acho que todos podemos aprender correto ?Não é por falta de pesquisa que criei esse tópico ,mais sim porque creio que aqui por serem os mais qualificados poderão me ajudar a entender corretamente e é claro conseguiram entender o que realmente quero saber.
Desde já agradeço .Até”

Leitura de cartões? Tente pesquisar por RFID e NFC. Por exemplo http://www.guj.com.br/java/138058-interacao-entre-java-e-rfid-

Códigos abertos, devem ter no GitHub: https://github.com/search?q=rfid&ref=cmdform

Mas basicamente, criação de projetos pessoais fica a gosto da pessoa, se o programador quiser implementar X com a linguagem Y, ele pode. Claro que algumas linguagens são mais indicadas para alguns casos, como C e Assembly para trabalhar mais próximo do hardware.

Projetos maiores costuma-se avaliar a melhor linguagem, normalmente a que fique melhor para a empresa, não para o projeto, já que precisa ter o cuidado de manter o projeto depois que entregue, ou ter bastante gente no mercado que conheça a tecnologia que possa fazer isso (por um preço barato).

Normalmente códigos que a empresa paga ficam como propriedade intelectual dela, e não são abertos.

Fora isso, tb entram N metodologias de como desenvolver um projeto, desde o jeito cowboy, quanto os mais estruturados.